DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_CHR_PVT

Source


1 PACKAGE BODY OKC_CHR_PVT AS
2 /* $Header: OKCSCHRB.pls 120.7 2007/09/07 10:07:15 vmutyala 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                 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                 CREATED_BY,
3099                 CREATION_DATE,
3100                 LAST_UPDATED_BY,
3101                 LAST_UPDATE_DATE,
3102                 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_V
3112          WHERE okc_k_headers_v.id = p_id;
3113     l_okc_chrv_pk okc_chrv_pk_csr%ROWTYPE;
3114     l_chrv_rec chrv_rec_type;
3115     BEGIN
3116 
3117         IF (l_debug = 'Y') THEN
3118             okc_debug.Set_Indentation('OKC_CHR_PVT');
3119             okc_debug.LOG('10600: Entered get_rec', 2);
3120         END IF;
3121 
3122         x_no_data_found := TRUE;
3123     -- Get current database values
3124         OPEN okc_chrv_pk_csr (p_chrv_rec.id);
3125         FETCH okc_chrv_pk_csr INTO
3126         l_chrv_rec.ID,
3127         l_chrv_rec.OBJECT_VERSION_NUMBER,
3128         l_chrv_rec.SFWT_FLAG,
3129         l_chrv_rec.CHR_ID_RESPONSE,
3130         l_chrv_rec.CHR_ID_AWARD,
3131         l_chrv_rec.INV_ORGANIZATION_ID,
3132         l_chrv_rec.STS_CODE,
3133         l_chrv_rec.QCL_ID,
3134         l_chrv_rec.SCS_CODE,
3135         l_chrv_rec.CONTRACT_NUMBER,
3136         l_chrv_rec.CURRENCY_CODE,
3137         l_chrv_rec.CONTRACT_NUMBER_MODIFIER,
3138         l_chrv_rec.ARCHIVED_YN,
3139         l_chrv_rec.DELETED_YN,
3140         l_chrv_rec.CUST_PO_NUMBER_REQ_YN,
3141         l_chrv_rec.PRE_PAY_REQ_YN,
3142         l_chrv_rec.CUST_PO_NUMBER,
3143         l_chrv_rec.SHORT_DESCRIPTION,
3144         l_chrv_rec.COMMENTS,
3145         l_chrv_rec.DESCRIPTION,
3146         l_chrv_rec.DPAS_RATING,
3147         l_chrv_rec.COGNOMEN,
3148         l_chrv_rec.TEMPLATE_YN,
3149         l_chrv_rec.TEMPLATE_USED,
3150         l_chrv_rec.DATE_APPROVED,
3151         l_chrv_rec.DATETIME_CANCELLED,
3152         l_chrv_rec.AUTO_RENEW_DAYS,
3153         l_chrv_rec.DATE_ISSUED,
3154         l_chrv_rec.DATETIME_RESPONDED,
3155         l_chrv_rec.NON_RESPONSE_REASON,
3156         l_chrv_rec.NON_RESPONSE_EXPLAIN,
3157         l_chrv_rec.RFP_TYPE,
3158         l_chrv_rec.CHR_TYPE,
3159         l_chrv_rec.KEEP_ON_MAIL_LIST,
3160         l_chrv_rec.SET_ASIDE_REASON,
3161         l_chrv_rec.SET_ASIDE_PERCENT,
3162         l_chrv_rec.RESPONSE_COPIES_REQ,
3163         l_chrv_rec.DATE_CLOSE_PROJECTED,
3164         l_chrv_rec.DATETIME_PROPOSED,
3165         l_chrv_rec.DATE_SIGNED,
3166         l_chrv_rec.DATE_TERMINATED,
3167         l_chrv_rec.DATE_RENEWED,
3168         l_chrv_rec.TRN_CODE,
3169         l_chrv_rec.START_DATE,
3170         l_chrv_rec.END_DATE,
3171         l_chrv_rec.AUTHORING_ORG_ID,
3172 --	      l_chrv_rec.ORG_ID, --mmadhavi added for MOAC
3173         l_chrv_rec.BUY_OR_SELL,
3174         l_chrv_rec.ISSUE_OR_RECEIVE,
3175         l_chrv_rec.ESTIMATED_AMOUNT,
3176         l_chrv_rec.ESTIMATED_AMOUNT_RENEWED,
3177         l_chrv_rec.CURRENCY_CODE_RENEWED,
3178         l_chrv_rec.UPG_ORIG_SYSTEM_REF,
3179         l_chrv_rec.UPG_ORIG_SYSTEM_REF_ID,
3180         l_chrv_rec.APPLICATION_ID,
3181         l_chrv_rec.ORIG_SYSTEM_SOURCE_CODE,
3182         l_chrv_rec.ORIG_SYSTEM_ID1,
3183         l_chrv_rec.ORIG_SYSTEM_REFERENCE1,
3184         l_chrv_rec.program_id,
3185         l_chrv_rec.request_id,
3186         l_chrv_rec.program_update_date,
3187         l_chrv_rec.program_application_id,
3188         l_chrv_rec.price_list_id,
3189         l_chrv_rec.pricing_date,
3190         l_chrv_rec.sign_by_date,
3191         l_chrv_rec.total_line_list_price,
3192         l_chrv_rec.USER_ESTIMATED_AMOUNT,
3193         l_chrv_rec.GOVERNING_CONTRACT_YN,
3194   --new columns  to replace rules
3195         l_chrv_rec.CONVERSION_TYPE,
3196         l_chrv_rec.CONVERSION_RATE,
3197         l_chrv_rec.CONVERSION_RATE_DATE,
3198         l_chrv_rec.CONVERSION_EURO_RATE,
3199         l_chrv_rec.CUST_ACCT_ID,
3200         l_chrv_rec.BILL_TO_SITE_USE_ID,
3201         l_chrv_rec.INV_RULE_ID,
3202         l_chrv_rec.RENEWAL_TYPE_CODE,
3203         l_chrv_rec.RENEWAL_NOTIFY_TO,
3204         l_chrv_rec.RENEWAL_END_DATE,
3205         l_chrv_rec.SHIP_TO_SITE_USE_ID,
3206         l_chrv_rec.PAYMENT_TERM_ID,
3207 --
3208         l_chrv_rec.ATTRIBUTE_CATEGORY,
3209         l_chrv_rec.ATTRIBUTE1,
3210         l_chrv_rec.ATTRIBUTE2,
3211         l_chrv_rec.ATTRIBUTE3,
3212         l_chrv_rec.ATTRIBUTE4,
3213         l_chrv_rec.ATTRIBUTE5,
3214         l_chrv_rec.ATTRIBUTE6,
3215         l_chrv_rec.ATTRIBUTE7,
3216         l_chrv_rec.ATTRIBUTE8,
3217         l_chrv_rec.ATTRIBUTE9,
3218         l_chrv_rec.ATTRIBUTE10,
3219         l_chrv_rec.ATTRIBUTE11,
3220         l_chrv_rec.ATTRIBUTE12,
3221         l_chrv_rec.ATTRIBUTE13,
3222         l_chrv_rec.ATTRIBUTE14,
3223         l_chrv_rec.ATTRIBUTE15,
3224         l_chrv_rec.CREATED_BY,
3225         l_chrv_rec.CREATION_DATE,
3226         l_chrv_rec.LAST_UPDATED_BY,
3227         l_chrv_rec.LAST_UPDATE_DATE,
3228         l_chrv_rec.LAST_UPDATE_LOGIN,
3229         l_chrv_rec.DOCUMENT_ID,
3230 -- R12 Data Model Changes 4485150 End
3231         l_chrv_rec.APPROVAL_TYPE,
3232         l_chrv_rec.TERM_CANCEL_SOURCE,
3233         l_chrv_rec.PAYMENT_INSTRUCTION_TYPE,
3234         l_chrv_rec.ORG_ID, --mmadhavi added for MOAC
3235 	   l_chrv_rec.CANCELLED_AMOUNT -- LLC
3236 -- R12 Data Model Changes 4485150 End
3237         ;
3238         x_no_data_found := okc_chrv_pk_csr%NOTFOUND;
3239         CLOSE okc_chrv_pk_csr;
3240         RETURN(l_chrv_rec);
3241 
3242     END get_rec;
3243 
3244     FUNCTION get_rec (
3245                       p_chrv_rec IN chrv_rec_type
3246                       ) RETURN chrv_rec_type IS
3247     l_row_notfound BOOLEAN := TRUE;
3248     BEGIN
3249 
3250         IF (l_debug = 'Y') THEN
3251             okc_debug.Set_Indentation('OKC_CHR_PVT');
3252             okc_debug.LOG('10700: Entered get_rec', 2);
3253         END IF;
3254 
3255         RETURN(get_rec(p_chrv_rec, l_row_notfound));
3256 
3257     END get_rec;
3258 
3259   -----------------------------------------------------
3260   -- FUNCTION null_out_defaults for: OKC_K_HEADERS_V --
3261   -----------------------------------------------------
3262     FUNCTION null_out_defaults (
3263                                 p_chrv_rec IN chrv_rec_type
3264                                 ) RETURN chrv_rec_type IS
3265     l_chrv_rec chrv_rec_type := p_chrv_rec;
3266     BEGIN
3267 
3268         IF (l_debug = 'Y') THEN
3269             okc_debug.Set_Indentation('OKC_CHR_PVT');
3270             okc_debug.LOG('10800: Entered null_out_defaults', 2);
3271         END IF;
3272 
3273         IF (l_chrv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
3274             l_chrv_rec.object_version_number := NULL;
3275         END IF;
3276         IF (l_chrv_rec.sfwt_flag = OKC_API.G_MISS_CHAR) THEN
3277             l_chrv_rec.sfwt_flag := NULL;
3278         END IF;
3279         IF (l_chrv_rec.chr_id_response = OKC_API.G_MISS_NUM) THEN
3280             l_chrv_rec.chr_id_response := NULL;
3281         END IF;
3282         IF (l_chrv_rec.chr_id_award = OKC_API.G_MISS_NUM) THEN
3283             l_chrv_rec.chr_id_award := NULL;
3284         END IF;
3285         IF (l_chrv_rec.INV_ORGANIZATION_ID = OKC_API.G_MISS_NUM) THEN
3286             l_chrv_rec.INV_ORGANIZATION_ID := NULL;
3287         END IF;
3288         IF (l_chrv_rec.sts_code = OKC_API.G_MISS_CHAR) THEN
3289             l_chrv_rec.sts_code := NULL;
3290         END IF;
3291         IF (l_chrv_rec.qcl_id = OKC_API.G_MISS_NUM) THEN
3292             l_chrv_rec.qcl_id := NULL;
3293         END IF;
3294         IF (l_chrv_rec.scs_code = OKC_API.G_MISS_CHAR) THEN
3295             l_chrv_rec.scs_code := NULL;
3296         END IF;
3297         IF (l_chrv_rec.contract_number = OKC_API.G_MISS_CHAR) THEN
3298             l_chrv_rec.contract_number := NULL;
3299         END IF;
3300         IF (l_chrv_rec.currency_code = OKC_API.G_MISS_CHAR) THEN
3301             l_chrv_rec.currency_code := NULL;
3302         END IF;
3303         IF (l_chrv_rec.contract_number_modifier = OKC_API.G_MISS_CHAR) THEN
3304             l_chrv_rec.contract_number_modifier := NULL;
3305         END IF;
3306         IF (l_chrv_rec.archived_yn = OKC_API.G_MISS_CHAR) THEN
3307             l_chrv_rec.archived_yn := NULL;
3308         END IF;
3309         IF (l_chrv_rec.deleted_yn = OKC_API.G_MISS_CHAR) THEN
3310             l_chrv_rec.deleted_yn := NULL;
3311         END IF;
3312         IF (l_chrv_rec.cust_po_number_req_yn = OKC_API.G_MISS_CHAR) THEN
3313             l_chrv_rec.cust_po_number_req_yn := NULL;
3314         END IF;
3315         IF (l_chrv_rec.pre_pay_req_yn = OKC_API.G_MISS_CHAR) THEN
3316             l_chrv_rec.pre_pay_req_yn := NULL;
3317         END IF;
3318         IF (l_chrv_rec.cust_po_number = OKC_API.G_MISS_CHAR) THEN
3319             l_chrv_rec.cust_po_number := NULL;
3320         END IF;
3321         IF (l_chrv_rec.short_description = OKC_API.G_MISS_CHAR) THEN
3322             l_chrv_rec.short_description := NULL;
3323         END IF;
3324         IF (l_chrv_rec.comments = OKC_API.G_MISS_CHAR) THEN
3325             l_chrv_rec.comments := NULL;
3326         END IF;
3327         IF (l_chrv_rec.description = OKC_API.G_MISS_CHAR) THEN
3328             l_chrv_rec.description := NULL;
3329         END IF;
3330         IF (l_chrv_rec.dpas_rating = OKC_API.G_MISS_CHAR) THEN
3331             l_chrv_rec.dpas_rating := NULL;
3332         END IF;
3333         IF (l_chrv_rec.cognomen = OKC_API.G_MISS_CHAR) THEN
3334             l_chrv_rec.cognomen := NULL;
3335         END IF;
3336         IF (l_chrv_rec.template_yn = OKC_API.G_MISS_CHAR) THEN
3337             l_chrv_rec.template_yn := NULL;
3338         END IF;
3339         IF (l_chrv_rec.template_used = OKC_API.G_MISS_CHAR) THEN
3340             l_chrv_rec.template_used := NULL;
3341         END IF;
3342         IF (l_chrv_rec.date_approved = OKC_API.G_MISS_DATE) THEN
3343             l_chrv_rec.date_approved := NULL;
3344         END IF;
3345         IF (l_chrv_rec.datetime_cancelled = OKC_API.G_MISS_DATE) THEN
3346             l_chrv_rec.datetime_cancelled := NULL;
3347         END IF;
3348         IF (l_chrv_rec.auto_renew_days = OKC_API.G_MISS_NUM) THEN
3349             l_chrv_rec.auto_renew_days := NULL;
3350         END IF;
3351         IF (l_chrv_rec.date_issued = OKC_API.G_MISS_DATE) THEN
3352             l_chrv_rec.date_issued := NULL;
3353         END IF;
3354         IF (l_chrv_rec.datetime_responded = OKC_API.G_MISS_DATE) THEN
3355             l_chrv_rec.datetime_responded := NULL;
3356         END IF;
3357         IF (l_chrv_rec.non_response_reason = OKC_API.G_MISS_CHAR) THEN
3358             l_chrv_rec.non_response_reason := NULL;
3359         END IF;
3360         IF (l_chrv_rec.non_response_explain = OKC_API.G_MISS_CHAR) THEN
3361             l_chrv_rec.non_response_explain := NULL;
3362         END IF;
3363         IF (l_chrv_rec.rfp_type = OKC_API.G_MISS_CHAR) THEN
3364             l_chrv_rec.rfp_type := NULL;
3365         END IF;
3366         IF (l_chrv_rec.chr_type = OKC_API.G_MISS_CHAR) THEN
3367             l_chrv_rec.chr_type := NULL;
3368         END IF;
3369         IF (l_chrv_rec.keep_on_mail_list = OKC_API.G_MISS_CHAR) THEN
3370             l_chrv_rec.keep_on_mail_list := NULL;
3371         END IF;
3372         IF (l_chrv_rec.set_aside_reason = OKC_API.G_MISS_CHAR) THEN
3373             l_chrv_rec.set_aside_reason := NULL;
3374         END IF;
3375         IF (l_chrv_rec.set_aside_percent = OKC_API.G_MISS_NUM) THEN
3376             l_chrv_rec.set_aside_percent := NULL;
3377         END IF;
3378         IF (l_chrv_rec.response_copies_req = OKC_API.G_MISS_NUM) THEN
3379             l_chrv_rec.response_copies_req := NULL;
3380         END IF;
3381         IF (l_chrv_rec.date_close_projected = OKC_API.G_MISS_DATE) THEN
3382             l_chrv_rec.date_close_projected := NULL;
3383         END IF;
3384         IF (l_chrv_rec.datetime_proposed = OKC_API.G_MISS_DATE) THEN
3385             l_chrv_rec.datetime_proposed := NULL;
3386         END IF;
3387         IF (l_chrv_rec.date_signed = OKC_API.G_MISS_DATE) THEN
3388             l_chrv_rec.date_signed := NULL;
3389         END IF;
3390         IF (l_chrv_rec.date_terminated = OKC_API.G_MISS_DATE) THEN
3391             l_chrv_rec.date_terminated := NULL;
3392         END IF;
3393         IF (l_chrv_rec.date_renewed = OKC_API.G_MISS_DATE) THEN
3394             l_chrv_rec.date_renewed := NULL;
3395         END IF;
3396         IF (l_chrv_rec.trn_code = OKC_API.G_MISS_CHAR) THEN
3397             l_chrv_rec.trn_code := NULL;
3398         END IF;
3399         IF (l_chrv_rec.start_date = OKC_API.G_MISS_DATE) THEN
3400             l_chrv_rec.start_date := NULL;
3401         END IF;
3402         IF (l_chrv_rec.end_date = OKC_API.G_MISS_DATE) THEN
3403             l_chrv_rec.end_date := NULL;
3404         END IF;
3405         IF (l_chrv_rec.authoring_org_id = OKC_API.G_MISS_NUM) THEN
3406             l_chrv_rec.authoring_org_id := NULL;
3407         END IF;
3408     --mmadhavi added for MOAC
3409 
3410         IF (l_chrv_rec.org_id = OKC_API.G_MISS_NUM) THEN
3411             l_chrv_rec.org_id := NULL;
3412         END IF;
3413 
3414     --mmadhavi end MOAC
3415         IF (l_chrv_rec.buy_or_sell = OKC_API.G_MISS_CHAR) THEN
3416             l_chrv_rec.buy_or_sell := NULL;
3417         END IF;
3418         IF (l_chrv_rec.issue_or_receive = OKC_API.G_MISS_CHAR) THEN
3419             l_chrv_rec.issue_or_receive := NULL;
3420         END IF;
3421         IF (l_chrv_rec.estimated_amount = OKC_API.G_MISS_NUM) THEN
3422             l_chrv_rec.estimated_amount := NULL;
3423         END IF;
3424         IF (l_chrv_rec.estimated_amount_renewed = OKC_API.G_MISS_NUM) THEN
3425             l_chrv_rec.estimated_amount_renewed := NULL;
3426         END IF;
3427         IF (l_chrv_rec.currency_code_renewed = OKC_API.G_MISS_CHAR) THEN
3428             l_chrv_rec.currency_code_renewed := NULL;
3429         END IF;
3430         IF (l_chrv_rec.upg_orig_system_ref = OKC_API.G_MISS_CHAR) THEN
3431             l_chrv_rec.upg_orig_system_ref := NULL;
3432         END IF;
3433         IF (l_chrv_rec.upg_orig_system_ref_id = OKC_API.G_MISS_NUM) THEN
3434             l_chrv_rec.upg_orig_system_ref_id := NULL;
3435         END IF;
3436         IF (l_chrv_rec.program_id = OKC_API.G_MISS_NUM) THEN
3437             l_chrv_rec.program_id := NULL;
3438         END IF;
3439         IF (l_chrv_rec.request_id = OKC_API.G_MISS_NUM) THEN
3440             l_chrv_rec.request_id := NULL;
3441         END IF;
3442         IF (l_chrv_rec.program_update_date = OKC_API.G_MISS_DATE) THEN
3443             l_chrv_rec.program_update_date := NULL;
3444         END IF;
3445         IF (l_chrv_rec.program_application_id = OKC_API.G_MISS_NUM) THEN
3446             l_chrv_rec.program_application_id := NULL;
3447         END IF;
3448         IF (l_chrv_rec.price_list_id = OKC_API.G_MISS_NUM) THEN
3449             l_chrv_rec.price_list_id := NULL;
3450         END IF;
3451         IF (l_chrv_rec.pricing_date = OKC_API.G_MISS_DATE) THEN
3452             l_chrv_rec.pricing_date := NULL;
3453         END IF;
3454         IF (l_chrv_rec.sign_by_date = OKC_API.G_MISS_DATE) THEN
3455             l_chrv_rec.sign_by_date := NULL;
3456         END IF;
3457         IF (l_chrv_rec.total_line_list_price = OKC_API.G_MISS_NUM) THEN
3458             l_chrv_rec.total_line_list_price := NULL;
3459         END IF;
3460         IF (l_chrv_rec.application_id = OKC_API.G_MISS_NUM) THEN
3461             l_chrv_rec.application_id := NULL;
3462         END IF;
3463         IF (l_chrv_rec.orig_system_source_code = OKC_API.G_MISS_CHAR ) THEN
3464             l_chrv_rec.orig_system_source_code := NULL;
3465         END IF;
3466         IF (l_chrv_rec.orig_system_id1 = OKC_API.G_MISS_NUM ) THEN
3467             l_chrv_rec.orig_system_id1 := NULL;
3468         END IF;
3469         IF (l_chrv_rec.orig_system_reference1 = OKC_API.G_MISS_CHAR ) THEN
3470             l_chrv_rec.orig_system_reference1 := NULL;
3471         END IF;
3472 
3473         IF (l_chrv_rec.USER_ESTIMATED_AMOUNT = OKC_API.G_MISS_NUM ) THEN
3474             l_chrv_rec.USER_ESTIMATED_AMOUNT := NULL;
3475         END IF;
3476 
3477         IF (l_chrv_rec.GOVERNING_CONTRACT_YN = OKC_API.G_MISS_CHAR ) THEN
3478             l_chrv_rec.GOVERNING_CONTRACT_YN := NULL;
3479         END IF;
3480 
3481         IF (l_chrv_rec.attribute_category = OKC_API.G_MISS_CHAR) THEN
3482             l_chrv_rec.attribute_category := NULL;
3483         END IF;
3484         IF (l_chrv_rec.attribute1 = OKC_API.G_MISS_CHAR) THEN
3485             l_chrv_rec.attribute1 := NULL;
3486         END IF;
3487         IF (l_chrv_rec.attribute2 = OKC_API.G_MISS_CHAR) THEN
3488             l_chrv_rec.attribute2 := NULL;
3489         END IF;
3490         IF (l_chrv_rec.attribute3 = OKC_API.G_MISS_CHAR) THEN
3491             l_chrv_rec.attribute3 := NULL;
3492         END IF;
3493         IF (l_chrv_rec.attribute4 = OKC_API.G_MISS_CHAR) THEN
3494             l_chrv_rec.attribute4 := NULL;
3495         END IF;
3496         IF (l_chrv_rec.attribute5 = OKC_API.G_MISS_CHAR) THEN
3497             l_chrv_rec.attribute5 := NULL;
3498         END IF;
3499         IF (l_chrv_rec.attribute6 = OKC_API.G_MISS_CHAR) THEN
3500             l_chrv_rec.attribute6 := NULL;
3501         END IF;
3502         IF (l_chrv_rec.attribute7 = OKC_API.G_MISS_CHAR) THEN
3503             l_chrv_rec.attribute7 := NULL;
3504         END IF;
3505         IF (l_chrv_rec.attribute8 = OKC_API.G_MISS_CHAR) THEN
3506             l_chrv_rec.attribute8 := NULL;
3507         END IF;
3508         IF (l_chrv_rec.attribute9 = OKC_API.G_MISS_CHAR) THEN
3509             l_chrv_rec.attribute9 := NULL;
3510         END IF;
3511         IF (l_chrv_rec.attribute10 = OKC_API.G_MISS_CHAR) THEN
3512             l_chrv_rec.attribute10 := NULL;
3513         END IF;
3514         IF (l_chrv_rec.attribute11 = OKC_API.G_MISS_CHAR) THEN
3515             l_chrv_rec.attribute11 := NULL;
3516         END IF;
3517         IF (l_chrv_rec.attribute12 = OKC_API.G_MISS_CHAR) THEN
3518             l_chrv_rec.attribute12 := NULL;
3519         END IF;
3520         IF (l_chrv_rec.attribute13 = OKC_API.G_MISS_CHAR) THEN
3521             l_chrv_rec.attribute13 := NULL;
3522         END IF;
3523         IF (l_chrv_rec.attribute14 = OKC_API.G_MISS_CHAR) THEN
3524             l_chrv_rec.attribute14 := NULL;
3525         END IF;
3526         IF (l_chrv_rec.attribute15 = OKC_API.G_MISS_CHAR) THEN
3527             l_chrv_rec.attribute15 := NULL;
3528         END IF;
3529         IF (l_chrv_rec.created_by = OKC_API.G_MISS_NUM) THEN
3530             l_chrv_rec.created_by := NULL;
3531         END IF;
3532         IF (l_chrv_rec.creation_date = OKC_API.G_MISS_DATE) THEN
3533             l_chrv_rec.creation_date := NULL;
3534         END IF;
3535         IF (l_chrv_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
3536             l_chrv_rec.last_updated_by := NULL;
3537         END IF;
3538         IF (l_chrv_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
3539             l_chrv_rec.last_update_date := NULL;
3540         END IF;
3541         IF (l_chrv_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
3542             l_chrv_rec.last_update_login := NULL;
3543         END IF;
3544     -- new  columns to replace rules
3545         IF (l_chrv_rec.conversion_type = OKC_API.G_MISS_CHAR) THEN
3546             l_chrv_rec.conversion_type := NULL;
3547         END IF;
3548         IF (l_chrv_rec.conversion_rate = OKC_API.G_MISS_NUM) THEN
3549             l_chrv_rec.conversion_rate := NULL;
3550         END IF;
3551         IF (l_chrv_rec.conversion_rate_date = OKC_API.G_MISS_DATE) THEN
3552             l_chrv_rec.conversion_rate_date := NULL;
3553         END IF;
3554         IF (l_chrv_rec.conversion_euro_rate = OKC_API.G_MISS_NUM) THEN
3555             l_chrv_rec.conversion_euro_rate := NULL;
3556         END IF;
3557         IF (l_chrv_rec.cust_acct_id = OKC_API.G_MISS_NUM) THEN
3558             l_chrv_rec .cust_acct_id := NULL;
3559         END IF;
3560         IF (l_chrv_rec.bill_to_site_use_id = OKC_API.G_MISS_NUM) THEN
3561             l_chrv_rec.bill_to_site_use_id := NULL;
3562         END IF;
3563         IF (l_chrv_rec.inv_rule_id = OKC_API.G_MISS_NUM) THEN
3564             l_chrv_rec.inv_rule_id := NULL;
3565         END IF;
3566         IF (l_chrv_rec.renewal_type_code = OKC_API.G_MISS_CHAR) THEN
3567             l_chrv_rec.renewal_type_code := NULL;
3568         END IF;
3569         IF (l_chrv_rec.renewal_notify_to = OKC_API.G_MISS_NUM) THEN
3570             l_chrv_rec.renewal_notify_to := NULL;
3571         END IF;
3572         IF (l_chrv_rec.renewal_end_date = OKC_API.G_MISS_DATE) THEN
3573             l_chrv_rec.renewal_end_date := NULL;
3574         END IF;
3575         IF (l_chrv_rec.ship_to_site_use_id = OKC_API.G_MISS_NUM) THEN
3576             l_chrv_rec.ship_to_site_use_id := NULL;
3577         END IF;
3578         IF (l_chrv_rec.payment_term_id = OKC_API.G_MISS_NUM) THEN
3579             l_chrv_rec.payment_term_id := NULL;
3580         END IF;
3581 -- R12 Data Model Changes 4485150 Start
3582         IF (l_chrv_rec.approval_type = OKC_API.G_MISS_CHAR) THEN
3583             l_chrv_rec.approval_type := NULL;
3584         END IF;
3585         IF (l_chrv_rec.term_cancel_source = OKC_API.G_MISS_CHAR) THEN
3586             l_chrv_rec.term_cancel_source := NULL;
3587         END IF;
3588         IF (l_chrv_rec.payment_instruction_type = OKC_API.G_MISS_CHAR) THEN
3589             l_chrv_rec.payment_instruction_type := NULL;
3590         END IF;
3591 	   -- LLC
3592 	   IF (l_chrv_rec.cancelled_amount = OKC_API.G_MISS_NUM) THEN
3593 	   	  l_chrv_rec.cancelled_amount := NULL;
3594 	   END IF;
3595 -- R12 Data Model Changes 4485150 End
3596         RETURN(l_chrv_rec);
3597 
3598     END null_out_defaults;
3599   ---------------------------------------------------------------------------
3600   -- PROCEDURE Validate_Attributes
3601   ---------------------------------------------------------------------------
3602   ---------------------------------------------
3603   -- Validate_Attributes for:OKC_K_HEADERS_V --
3604   ---------------------------------------------
3605     FUNCTION Validate_Attributes (
3606                                   p_chrv_rec IN chrv_rec_type
3607                                   ) RETURN VARCHAR2 IS
3608     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3609     x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3610     BEGIN
3611 
3612         IF (l_debug = 'Y') THEN
3613             okc_debug.Set_Indentation('OKC_CHR_PVT');
3614             okc_debug.LOG('10900: Entered Validate_Attributes', 2);
3615         END IF;
3616 
3617   /************************ HAND-CODED *********************************/
3618         validate_contract_number
3619         (x_return_status => l_return_status,
3620          p_chrv_rec => p_chrv_rec);
3621 
3622     -- store the highest degree of error
3623         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3624             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3625                 x_return_status := l_return_status;
3626             END IF;
3627         END IF;
3628 
3629         validate_currency_code
3630         (x_return_status => l_return_status,
3631          p_chrv_rec => p_chrv_rec);
3632 
3633     -- store the highest degree of error
3634         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3635             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3636                 x_return_status := l_return_status;
3637             END IF;
3638         END IF;
3639 
3640         validate_sfwt_flag
3641         (x_return_status => l_return_status,
3642          p_chrv_rec => p_chrv_rec);
3643 
3644     -- store the highest degree of error
3645         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3646             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3647                 x_return_status := l_return_status;
3648             END IF;
3649         END IF;
3650 
3651         validate_chr_id_response
3652         (x_return_status => l_return_status,
3653          p_chrv_rec => p_chrv_rec);
3654 
3655     -- store the highest degree of error
3656         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3657             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3658                 x_return_status := l_return_status;
3659             END IF;
3660         END IF;
3661 
3662         validate_chr_id_award
3663         (x_return_status => l_return_status,
3664          p_chrv_rec => p_chrv_rec);
3665 
3666     -- store the highest degree of error
3667         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3668             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3669                 x_return_status := l_return_status;
3670             END IF;
3671         END IF;
3672 
3673         validate_INV_ORGANIZATION_ID
3674         (x_return_status => l_return_status,
3675          p_chrv_rec => p_chrv_rec);
3676 
3677     -- store the highest degree of error
3678         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3679             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3680                 x_return_status := l_return_status;
3681             END IF;
3682         END IF;
3683 
3684         validate_sts_code
3685         (x_return_status => l_return_status,
3686          p_chrv_rec => p_chrv_rec);
3687 
3688     -- store the highest degree of error
3689         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3690             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3691                 x_return_status := l_return_status;
3692             END IF;
3693         END IF;
3694 
3695         validate_qcl_id
3696         (x_return_status => l_return_status,
3697          p_chrv_rec => p_chrv_rec);
3698 
3699     -- store the highest degree of error
3700         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3701             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3702                 x_return_status := l_return_status;
3703             END IF;
3704         END IF;
3705 
3706         validate_org_ids
3707         (x_return_status => l_return_status,
3708          p_chrv_rec => p_chrv_rec);
3709 
3710     -- store the highest degree of error
3711         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3712             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3713                 x_return_status := l_return_status;
3714             END IF;
3715         END IF;
3716 
3717         validate_buy_or_sell
3718         (x_return_status => l_return_status,
3719          p_chrv_rec => p_chrv_rec);
3720 
3721     -- store the highest degree of error
3722         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3723             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3724                 x_return_status := l_return_status;
3725             END IF;
3726         END IF;
3727 
3728         validate_issue_or_receive
3729         (x_return_status => l_return_status,
3730          p_chrv_rec => p_chrv_rec);
3731 
3732     -- store the highest degree of error
3733         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3734             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3735                 x_return_status := l_return_status;
3736             END IF;
3737         END IF;
3738 
3739         validate_scs_code
3740         (x_return_status => l_return_status,
3741          p_chrv_rec => p_chrv_rec);
3742 
3743     -- store the highest degree of error
3744         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3745             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3746                 x_return_status := l_return_status;
3747             END IF;
3748         END IF;
3749 
3750         validate_archived_yn
3751         (x_return_status => l_return_status,
3752          p_chrv_rec => p_chrv_rec);
3753 
3754     -- store the highest degree of error
3755         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3756             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3757                 x_return_status := l_return_status;
3758             END IF;
3759         END IF;
3760 
3761         validate_deleted_yn
3762         (x_return_status => l_return_status,
3763          p_chrv_rec => p_chrv_rec);
3764 
3765     -- store the highest degree of error
3766         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3767             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3768                 x_return_status := l_return_status;
3769             END IF;
3770         END IF;
3771 
3772         validate_cust_po_number_req_yn
3773         (x_return_status => l_return_status,
3774          p_chrv_rec => p_chrv_rec);
3775 
3776     -- store the highest degree of error
3777         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3778             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3779                 x_return_status := l_return_status;
3780             END IF;
3781         END IF;
3782 
3783         validate_pre_pay_req_yn
3784         (x_return_status => l_return_status,
3785          p_chrv_rec => p_chrv_rec);
3786 
3787     -- store the highest degree of error
3788         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3789             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3790                 x_return_status := l_return_status;
3791             END IF;
3792         END IF;
3793 
3794         validate_template_yn
3795         (x_return_status => l_return_status,
3796          p_chrv_rec => p_chrv_rec);
3797 
3798     -- store the highest degree of error
3799         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3800             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3801                 x_return_status := l_return_status;
3802             END IF;
3803         END IF;
3804 
3805         validate_chr_type
3806         (x_return_status => l_return_status,
3807          p_chrv_rec => p_chrv_rec);
3808 
3809     -- store the highest degree of error
3810         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3811             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3812                 x_return_status := l_return_status;
3813             END IF;
3814         END IF;
3815 
3816 /*
3817     validate_datetime_cancelled
3818 			(x_return_status => l_return_status,
3819 			 p_chrv_rec      => p_chrv_rec);
3820 
3821     -- store the highest degree of error
3822     If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
3823 	  If x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
3824   	     x_return_status := l_return_status;
3825        End If;
3826     End If;
3827 */
3828         validate_keep_on_mail_list
3829         (x_return_status => l_return_status,
3830          p_chrv_rec => p_chrv_rec);
3831 
3832     -- store the highest degree of error
3833         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3834             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3835                 x_return_status := l_return_status;
3836             END IF;
3837         END IF;
3838 
3839         validate_set_aside_percent
3840         (x_return_status => l_return_status,
3841          p_chrv_rec => p_chrv_rec);
3842 
3843     -- store the highest degree of error
3844         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3845             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3846                 x_return_status := l_return_status;
3847             END IF;
3848         END IF;
3849 /*
3850     validate_date_terminated
3851 			(x_return_status => l_return_status,
3852 			 p_chrv_rec      => p_chrv_rec);
3853 
3854     -- store the highest degree of error
3855     If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
3856 	  If x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
3857   	     x_return_status := l_return_status;
3858        End If;
3859     End If;
3860 */
3861         validate_trn_code
3862         (x_return_status => l_return_status,
3863          p_chrv_rec => p_chrv_rec);
3864 
3865     -- store the highest degree of error
3866         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3867             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3868                 x_return_status := l_return_status;
3869             END IF;
3870         END IF;
3871 /*
3872     validate_chr_id_rnwd_to
3873 			(x_return_status => l_return_status,
3874 			 p_chrv_rec      => p_chrv_rec);
3875 
3876     -- store the highest degree of error
3877     If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
3878 	  If x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
3879   	     x_return_status := l_return_status;
3880        End If;
3881     End If;
3882 */
3883         validate_curr_code_rnwd
3884         (x_return_status => l_return_status,
3885          p_chrv_rec => p_chrv_rec);
3886 
3887     -- store the highest degree of error
3888         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3889             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3890                 x_return_status := l_return_status;
3891             END IF;
3892         END IF;
3893 
3894         validate_orig_sys_code
3895         (x_return_status => l_return_status,
3896          p_chrv_rec => p_chrv_rec);
3897 
3898     -- store the highest degree of error
3899         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3900             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3901                 x_return_status := l_return_status;
3902             END IF;
3903         END IF;
3904 /* Bug 3652127 Price list not validated for OKS*/
3905         IF l_application_id <> 515 THEN
3906             validate_PRICE_LIST_ID
3907             (x_return_status => l_return_status,
3908              p_chrv_rec => p_chrv_rec);
3909 
3910     -- store the highest degree of error
3911             IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3912                 IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3913                     x_return_status := l_return_status;
3914                 END IF;
3915             END IF;
3916         END IF;
3917 
3918         --From R12 onwards, OKS has it's won renewal type
3919         IF l_application_id <> 515 THEN
3920                 validate_renewal_type_code
3921                 (x_return_status => l_return_status,
3922                  p_chrv_rec => p_chrv_rec);
3923 
3924             -- store the highest degree of error
3925                 IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3926                     IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3927                         x_return_status := l_return_status;
3928                     END IF;
3929                 END IF;
3930         ELSE
3931                 validate_oks_renewal_type_code
3932                 (x_return_status => l_return_status,
3933                  p_chrv_rec => p_chrv_rec);
3934 
3935             -- store the highest degree of error
3936                 IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3937                     IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3938                         x_return_status := l_return_status;
3939                     END IF;
3940                 END IF;
3941         END IF;
3942         --end of R12 renewal_type_code validation changes
3943 
3944 -- R12 Data Model Changes 4485150 Start
3945         validate_approval_type(x_return_status => l_return_status,
3946                                p_chrv_rec => p_chrv_rec) ;
3947     -- store the highest degree of error
3948         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3949             IF x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3950                 x_return_status := l_return_status;
3951             END IF;
3952         END IF;
3953 -- R12 Data Model Changes 4485150 End
3954         RETURN(x_return_status);
3955         IF (l_debug = 'Y') THEN
3956             okc_debug.LOG('11000: Exiting Validate_Attributes', 2);
3957             okc_debug.Reset_Indentation;
3958         END IF;
3959 
3960 
3961     EXCEPTION
3962         WHEN OTHERS THEN
3963 
3964             IF (l_debug = 'Y') THEN
3965                 okc_debug.LOG('11100: Exiting Validate_Attributes:OTHERS Exception', 2);
3966                 okc_debug.Reset_Indentation;
3967             END IF;
3968 
3969 	  -- store SQL error message on message stack
3970             OKC_API.SET_MESSAGE(p_app_name => g_app_name,
3971                                 p_msg_name => g_unexpected_error,
3972                                 p_token1 => g_sqlcode_token,
3973                                 p_token1_value => SQLCODE,
3974                                 p_token2 => g_sqlerrm_token,
3975                                 p_token2_value => SQLERRM);
3976 
3977 	   -- notify caller of an UNEXPETED error
3978             x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3979 
3980 	   -- return status to caller
3981             RETURN(x_return_status);
3982 
3983 
3984     END Validate_Attributes;
3985 
3986   -- This function returns the status type for given status code
3987     FUNCTION Get_Status_Type(p_code VARCHAR2) RETURN VARCHAR2 IS
3988     l_ste_code VARCHAR2(30) := 'X';
3989 
3990     CURSOR l_stsv_csr IS
3991         SELECT ste_code
3992         FROM okc_statuses_b
3993         WHERE code = p_code;
3994     BEGIN
3995 
3996         IF (l_debug = 'Y') THEN
3997             okc_debug.Set_Indentation('OKC_CHR_PVT');
3998             okc_debug.LOG('11200: Entered Get_Status_Type', 2);
3999         END IF;
4000 
4001         OPEN l_stsv_csr;
4002         FETCH l_stsv_csr INTO l_ste_code;
4003         CLOSE l_stsv_csr;
4004         RETURN l_ste_code;
4005         IF (l_debug = 'Y') THEN
4006             okc_debug.LOG('11300: Exiting Get_Status_Type', 2);
4007             okc_debug.Reset_Indentation;
4008         END IF;
4009 
4010 
4011     EXCEPTION
4012         WHEN NO_DATA_FOUND THEN
4013 
4014             IF (l_debug = 'Y') THEN
4015                 okc_debug.LOG('11400: Exiting Get_Status_Type:NO_DATA_FOUND Exception', 2);
4016                 okc_debug.Reset_Indentation;
4017             END IF;
4018 
4019             RETURN l_ste_code;
4020         WHEN OTHERS THEN
4021 
4022             IF (l_debug = 'Y') THEN
4023                 okc_debug.LOG('11500: Exiting Get_Status_Type:Others Exception', 2);
4024                 okc_debug.Reset_Indentation;
4025             END IF;
4026 
4027             RETURN l_ste_code;
4028     END;
4029 
4030     FUNCTION IS_UNIQUE (p_chrv_rec chrv_rec_type) RETURN VARCHAR2
4031     IS
4032     CURSOR l_chr_csr1 IS
4033         SELECT 'x'
4034         --npalepu 08-11-2005 modified for bug # 4691662.
4035         --Replaced table okc_k_headers_b with headers_All_b table
4036         /* FROM okc_k_headers_b */
4037         FROM okc_k_headers_all_b
4038         --end npalepu
4039         WHERE contract_number = p_chrv_rec.contract_number
4040         AND   contract_number_modifier IS NULL
4041         AND   id <> nvl(p_chrv_rec.id, - 99999);
4042 
4043     CURSOR l_chr_csr2 IS
4044         SELECT 'x'
4045         --npalepu 08-11-2005 modified for bug # 4691662.
4046         --Replaced table okc_k_headers_b with headers_All_b table
4047         /* FROM okc_k_headers_b */
4048         FROM okc_k_headers_all_b
4049         --end npalepu
4050         WHERE contract_number = p_chrv_rec.contract_number
4051         AND   contract_number_modifier = p_chrv_rec.contract_number_modifier
4052         AND   id <> nvl(p_chrv_rec.id, - 99999);
4053 
4054     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4055     l_dummy VARCHAR2(1);
4056     l_found BOOLEAN;
4057     BEGIN
4058 
4059         IF (l_debug = 'Y') THEN
4060             okc_debug.Set_Indentation('OKC_CHR_PVT');
4061             okc_debug.LOG('11600: Entered IS_UNIQUE', 2);
4062         END IF;
4063 
4064     -- check for unique CONTRACT_NUMBER + MODIFIER
4065         IF (p_chrv_rec.contract_number_modifier IS NULL) THEN
4066             OPEN l_chr_csr1;
4067             FETCH l_chr_csr1 INTO l_dummy;
4068             l_found := l_chr_csr1%FOUND;
4069             CLOSE l_chr_csr1;
4070         ELSE
4071             OPEN l_chr_csr2;
4072             FETCH l_chr_csr2 INTO l_dummy;
4073             l_found := l_chr_csr2%FOUND;
4074             CLOSE l_chr_csr2;
4075         END IF;
4076         IF (l_found) THEN
4077             OKC_API.SET_MESSAGE(p_app_name => g_app_name,
4078                                 p_msg_name => 'OKC_CONTRACT_EXISTS',
4079                                 p_token1 => 'VALUE1',
4080                                 p_token1_value => p_chrv_rec.contract_number,
4081                                 p_token2 => 'VALUE2',
4082                                 p_token2_value => nvl(p_chrv_rec.contract_number_modifier,' '));
4083 	  -- notify caller of an error
4084             l_return_status := OKC_API.G_RET_STS_ERROR;
4085         END IF;
4086         RETURN (l_return_status);
4087 
4088         IF (l_debug = 'Y') THEN
4089             okc_debug.LOG('11700: Exiting IS_UNIQUE', 2);
4090             okc_debug.Reset_Indentation;
4091         END IF;
4092 
4093 
4094     EXCEPTION
4095         WHEN OTHERS THEN
4096 
4097             IF (l_debug = 'Y') THEN
4098                 okc_debug.LOG('11800: Exiting IS_UNIQUE:OTHERS Exception', 2);
4099                 okc_debug.Reset_Indentation;
4100             END IF;
4101 
4102             RETURN (l_return_status);
4103 
4104     END IS_UNIQUE;
4105 
4106   /*********************** END HAND-CODED ********************************/
4107   ---------------------------------------------------------------------------
4108   -- PROCEDURE Validate_Record
4109   ---------------------------------------------------------------------------
4110 
4111   -----------------------------------------
4112   -- Validate_Record for:OKC_K_HEADERS_V --
4113   -----------------------------------------
4114     FUNCTION Validate_Record (
4115                               p_chrv_rec IN chrv_rec_type
4116                               ) RETURN VARCHAR2 IS
4117     CURSOR l_chr_csr1 IS
4118         SELECT 'x'
4119         --npalepu 08-11-2005 modified for bug # 4691662.
4120         --Replaced table okc_k_headers_b with headers_All_b table
4121         /* FROM okc_k_headers_b */
4122         FROM okc_k_headers_all_b
4123         --end npalepu
4124         WHERE contract_number = p_chrv_rec.contract_number
4125         AND   contract_number_modifier IS NULL
4126         AND   id <> nvl(p_chrv_rec.id, - 99999);
4127 
4128     CURSOR l_chr_csr2 IS
4129         SELECT 'x'
4130         --npalepu 08-11-2005 modified for bug # 4691662.
4131         --Replaced table okc_k_headers_b with headers_All_b table
4132         /* FROM okc_k_headers_b */
4133         FROM okc_k_headers_all_b
4134         --end npalepu
4135         WHERE contract_number = p_chrv_rec.contract_number
4136         AND   contract_number_modifier = p_chrv_rec.contract_number_modifier
4137         AND   id <> nvl(p_chrv_rec.id, - 99999);
4138 
4139     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4140     l_dummy VARCHAR2(1);
4141     l_found BOOLEAN;
4142     BEGIN
4143 
4144         IF (l_debug = 'Y') THEN
4145             okc_debug.Set_Indentation('OKC_CHR_PVT');
4146             okc_debug.LOG('11900: Entered Validate_Record', 2);
4147         END IF;
4148 
4149     -- check for unique CONTRACT_NUMBER + MODIFIER
4150     /*
4151     If (p_chrv_rec.contract_number_modifier is null) Then
4152         open l_chr_csr1;
4153         fetch l_chr_csr1 into l_dummy;
4154 	   l_found := l_chr_csr1%FOUND;
4155 	   close l_chr_csr1;
4156     Else
4157         open l_chr_csr2;
4158         fetch l_chr_csr2 into l_dummy;
4159 	   l_found := l_chr_csr2%FOUND;
4160 	   close l_chr_csr2;
4161     End If;
4162     If (l_found) Then
4163   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
4164 					    p_msg_name		=> 'OKC_CONTRACT_EXISTS',
4165 					    p_token1		=> 'VALUE1',
4166 					    p_token1_value	=> p_chrv_rec.contract_number,
4167 					    p_token2		=> 'VALUE2',
4168 					    p_token2_value	=> nvl(p_chrv_rec.contract_number_modifier,' '));
4169 	  -- notify caller of an error
4170 	  l_return_status := OKC_API.G_RET_STS_ERROR;
4171     End If;
4172     */
4173         l_return_status := IS_UNIQUE(p_chrv_rec);
4174 
4175         IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
4176        -- start date cannot be after end date
4177             IF (p_chrv_rec.START_DATE IS NOT NULL AND
4178                 p_chrv_rec.END_DATE IS NOT NULL)
4179                 THEN
4180                 IF (p_chrv_rec.START_DATE > p_chrv_rec.END_DATE) THEN
4181 		    -- notify caller of an error as UNEXPETED error
4182                     l_return_status := OKC_API.G_RET_STS_ERROR;
4183                     OKC_API.SET_MESSAGE(p_app_name => g_app_name,
4184                                         p_msg_name => 'OKC_INVALID_START_END_DATES'
4185                                         );
4186                 END IF;
4187             END IF;
4188        ---SIGN_BY_DATE  must be earlier than the END_DATE of the contract
4189             IF (p_chrv_rec.START_DATE IS NOT NULL AND
4190                 p_chrv_rec.SIGN_BY_DATE IS NOT NULL)
4191                 THEN
4192 --Bug 3720503      If (p_chrv_rec.END_DATE > p_chrv_rec.SIGN_BY_DATE) Then
4193                 IF (p_chrv_rec.SIGN_BY_DATE > p_chrv_rec.END_DATE ) THEN
4194 		    -- notify caller of an error as UNEXPETED error
4195                     l_return_status := OKC_API.G_RET_STS_ERROR;
4196                     OKC_API.SET_MESSAGE(p_app_name => g_app_name,
4197                                         p_msg_name => 'OKC_INVALID_SIGN_END_DATES');
4198                 END IF;
4199             END IF;
4200 
4201         END IF;
4202    --Pricing date should not be than contract end date for advanced pricing
4203         IF ((l_return_status = OKC_API.G_RET_STS_SUCCESS) AND
4204             NVL(fnd_profile.VALUE('OKC_ADVANCED_PRICING'), 'N') = 'Y') THEN
4205             IF (p_chrv_rec.END_DATE IS NOT NULL AND
4206                 p_chrv_rec.PRICING_DATE IS NOT NULL)
4207                 THEN
4208                 IF (p_chrv_rec.PRICING_DATE > p_chrv_rec.END_DATE) THEN
4209               -- notify caller of an error as UNEXPETED error
4210                     l_return_status := OKC_API.G_RET_STS_ERROR;
4211                     OKC_API.SET_MESSAGE(p_app_name => g_app_name,
4212                                         p_msg_name => 'OKC_INVALID_PRICING_DATE');
4213                 END IF;
4214             END IF;
4215         END IF;
4216 
4217         RETURN (l_return_status);
4218         IF (l_debug = 'Y') THEN
4219             okc_debug.LOG('12000: Exiting Validate_Record', 2);
4220             okc_debug.Reset_Indentation;
4221         END IF;
4222 
4223 
4224     EXCEPTION
4225         WHEN NO_DATA_FOUND THEN
4226 
4227             IF (l_debug = 'Y') THEN
4228                 okc_debug.LOG('12100: Exiting Validate_Record:NO_DATA_FOUND Exception', 2);
4229                 okc_debug.Reset_Indentation;
4230             END IF;
4231 
4232             NULL;
4233 
4234     END Validate_Record;
4235 
4236   ---------------------------------------------------------------------------
4237   -- PROCEDURE Migrate
4238   ---------------------------------------------------------------------------
4239     PROCEDURE migrate (
4240                        p_from IN chrv_rec_type,
4241                        p_to IN OUT NOCOPY chr_rec_type
4242                        ) IS
4243     BEGIN
4244 
4245         IF (l_debug = 'Y') THEN
4246             okc_debug.Set_Indentation('OKC_CHR_PVT');
4247             okc_debug.LOG('12200: Entered migrate', 2);
4248         END IF;
4249 
4250         p_to.id := p_from.id;
4251         p_to.contract_number := p_from.contract_number;
4252         p_to.authoring_org_id := p_from.authoring_org_id;
4253 --    p_to.org_id := p_from.org_id; --mmadhavi added for MOAC
4254         p_to.contract_number_modifier := p_from.contract_number_modifier;
4255         p_to.chr_id_response := p_from.chr_id_response;
4256         p_to.chr_id_award := p_from.chr_id_award;
4257         p_to.INV_ORGANIZATION_ID := p_from.INV_ORGANIZATION_ID;
4258         p_to.sts_code := p_from.sts_code;
4259         p_to.qcl_id := p_from.qcl_id;
4260         p_to.scs_code := p_from.scs_code;
4261         p_to.trn_code := p_from.trn_code;
4262         p_to.currency_code := p_from.currency_code;
4263         p_to.archived_yn := p_from.archived_yn;
4264         p_to.deleted_yn := p_from.deleted_yn;
4265         p_to.template_yn := p_from.template_yn;
4266         p_to.chr_type := p_from.chr_type;
4267         p_to.object_version_number := p_from.object_version_number;
4268         p_to.created_by := p_from.created_by;
4269         p_to.creation_date := p_from.creation_date;
4270         p_to.last_updated_by := p_from.last_updated_by;
4271         p_to.last_update_date := p_from.last_update_date;
4272         p_to.cust_po_number_req_yn := p_from.cust_po_number_req_yn;
4273         p_to.pre_pay_req_yn := p_from.pre_pay_req_yn;
4274         p_to.cust_po_number := p_from.cust_po_number;
4275         p_to.dpas_rating := p_from.dpas_rating;
4276         p_to.template_used := p_from.template_used;
4277         p_to.date_approved := p_from.date_approved;
4278         p_to.datetime_cancelled := p_from.datetime_cancelled;
4279         p_to.auto_renew_days := p_from.auto_renew_days;
4280         p_to.date_issued := p_from.date_issued;
4281         p_to.datetime_responded := p_from.datetime_responded;
4282         p_to.rfp_type := p_from.rfp_type;
4283         p_to.keep_on_mail_list := p_from.keep_on_mail_list;
4284         p_to.set_aside_percent := p_from.set_aside_percent;
4285         p_to.response_copies_req := p_from.response_copies_req;
4286         p_to.date_close_projected := p_from.date_close_projected;
4287         p_to.datetime_proposed := p_from.datetime_proposed;
4288         p_to.date_signed := p_from.date_signed;
4289         p_to.date_terminated := p_from.date_terminated;
4290         p_to.date_renewed := p_from.date_renewed;
4291         p_to.start_date := p_from.start_date;
4292         p_to.end_date := p_from.end_date;
4293         p_to.buy_or_sell := p_from.buy_or_sell;
4294         p_to.issue_or_receive := p_from.issue_or_receive;
4295         p_to.estimated_amount := p_from.estimated_amount;
4296         p_to.estimated_amount_renewed := p_from.estimated_amount_renewed;
4297         p_to.currency_code_renewed := p_from.currency_code_renewed;
4298         p_to.last_update_login := p_from.last_update_login;
4299         p_to.upg_orig_system_ref := p_from.upg_orig_system_ref;
4300         p_to.upg_orig_system_ref_id := p_from.upg_orig_system_ref_id;
4301         p_to.application_id := p_from.application_id;
4302         p_to.orig_system_source_code := p_from.orig_system_source_code;
4303         p_to.orig_system_id1 := p_from.orig_system_id1;
4304         p_to.orig_system_reference1 := p_from.orig_system_reference1 ;
4305         p_to.program_id := p_from.program_id;
4306         p_to.request_id := p_from.request_id;
4307         p_to.program_update_date := p_from.program_update_date;
4308         p_to.program_application_id := p_from.program_application_id;
4309         p_to.price_list_id := p_from.price_list_id;
4310         p_to.pricing_date := p_from.pricing_date;
4311         p_to.sign_by_date := p_from.sign_by_date;
4312         p_to.total_line_list_price := p_from.total_line_list_price;
4313         p_to.USER_ESTIMATED_AMOUNT := p_from.USER_ESTIMATED_AMOUNT;
4314         p_to.governing_contract_yn := p_from.governing_contract_yn;
4315         p_to.attribute_category := p_from.attribute_category;
4316         p_to.attribute1 := p_from.attribute1;
4317         p_to.attribute2 := p_from.attribute2;
4318         p_to.attribute3 := p_from.attribute3;
4319         p_to.attribute4 := p_from.attribute4;
4320         p_to.attribute5 := p_from.attribute5;
4321         p_to.attribute6 := p_from.attribute6;
4322         p_to.attribute7 := p_from.attribute7;
4323         p_to.attribute8 := p_from.attribute8;
4324         p_to.attribute9 := p_from.attribute9;
4325         p_to.attribute10 := p_from.attribute10;
4326         p_to.attribute11 := p_from.attribute11;
4327         p_to.attribute12 := p_from.attribute12;
4328         p_to.attribute13 := p_from.attribute13;
4329         p_to.attribute14 := p_from.attribute14;
4330         p_to.attribute15 := p_from.attribute15;
4331  --new columns to replace rules
4332         p_to.conversion_type := p_from.conversion_type;
4333         p_to.conversion_rate := p_from.conversion_rate;
4334         p_to.conversion_rate_date := p_from.conversion_rate_date;
4335         p_to.conversion_euro_rate := p_from.conversion_euro_rate;
4336         p_to.cust_acct_id := p_from.cust_acct_id;
4337         p_to.bill_to_site_use_id := p_from.bill_to_site_use_id;
4338         p_to.inv_rule_id := p_from.inv_rule_id;
4339         p_to.renewal_type_code := p_from.renewal_type_code;
4340         p_to.renewal_notify_to := p_from.renewal_notify_to;
4341         p_to.renewal_end_date := p_from.renewal_end_date;
4342         p_to.ship_to_site_use_id := p_from.ship_to_site_use_id;
4343         p_to.payment_term_id := p_from.payment_term_id;
4344         p_to.document_id := p_from.document_id;
4345 
4346 -- R12 Data Model Changes 4485150 Start
4347         p_to.approval_type := p_from.approval_type;
4348         p_to.term_cancel_source := p_from.term_cancel_source;
4349         p_to.payment_instruction_type := p_from.payment_instruction_type;
4350         p_to.org_id := p_from.org_id; --mmadhavi added for MOAC
4351 -- R12 Data Model Changes 4485150 End
4352 	  p_to.cancelled_amount := p_from.cancelled_amount; -- LLC
4353 
4354     END migrate;
4355     PROCEDURE migrate (
4356                        p_from IN chr_rec_type,
4357                        p_to IN OUT NOCOPY chrv_rec_type
4358                        ) IS
4359     BEGIN
4360 
4361         IF (l_debug = 'Y') THEN
4362             okc_debug.Set_Indentation('OKC_CHR_PVT');
4363             okc_debug.LOG('12300: Entered migrate', 2);
4364         END IF;
4365 
4366         p_to.id := p_from.id;
4367         p_to.contract_number := p_from.contract_number;
4368         p_to.authoring_org_id := p_from.authoring_org_id;
4369         p_to.org_id := p_from.org_id; --mmadhavi added for MOAC
4370         p_to.contract_number_modifier := p_from.contract_number_modifier;
4371         p_to.chr_id_response := p_from.chr_id_response;
4372         p_to.chr_id_award := p_from.chr_id_award;
4373         p_to.INV_ORGANIZATION_ID := p_from.INV_ORGANIZATION_ID;
4374         p_to.sts_code := p_from.sts_code;
4375         p_to.qcl_id := p_from.qcl_id;
4376         p_to.scs_code := p_from.scs_code;
4377         p_to.trn_code := p_from.trn_code;
4378         p_to.currency_code := p_from.currency_code;
4379         p_to.archived_yn := p_from.archived_yn;
4380         p_to.deleted_yn := p_from.deleted_yn;
4381         p_to.template_yn := p_from.template_yn;
4382         p_to.chr_type := p_from.chr_type;
4383         p_to.object_version_number := p_from.object_version_number;
4384         p_to.created_by := p_from.created_by;
4385         p_to.creation_date := p_from.creation_date;
4386         p_to.last_updated_by := p_from.last_updated_by;
4387         p_to.last_update_date := p_from.last_update_date;
4388         p_to.cust_po_number_req_yn := p_from.cust_po_number_req_yn;
4389         p_to.pre_pay_req_yn := p_from.pre_pay_req_yn;
4390         p_to.cust_po_number := p_from.cust_po_number;
4391         p_to.dpas_rating := p_from.dpas_rating;
4392         p_to.template_used := p_from.template_used;
4393         p_to.date_approved := p_from.date_approved;
4394         p_to.datetime_cancelled := p_from.datetime_cancelled;
4395         p_to.auto_renew_days := p_from.auto_renew_days;
4396         p_to.date_issued := p_from.date_issued;
4397         p_to.datetime_responded := p_from.datetime_responded;
4398         p_to.rfp_type := p_from.rfp_type;
4399         p_to.keep_on_mail_list := p_from.keep_on_mail_list;
4400         p_to.set_aside_percent := p_from.set_aside_percent;
4401         p_to.response_copies_req := p_from.response_copies_req;
4402         p_to.date_close_projected := p_from.date_close_projected;
4403         p_to.datetime_proposed := p_from.datetime_proposed;
4404         p_to.date_signed := p_from.date_signed;
4405         p_to.date_terminated := p_from.date_terminated;
4406         p_to.date_renewed := p_from.date_renewed;
4407         p_to.start_date := p_from.start_date;
4408         p_to.end_date := p_from.end_date;
4409         p_to.buy_or_sell := p_from.buy_or_sell;
4410         p_to.issue_or_receive := p_from.issue_or_receive;
4411         p_to.estimated_amount := p_from.estimated_amount;
4412         p_to.estimated_amount_renewed := p_from.estimated_amount_renewed;
4413         p_to.currency_code_renewed := p_from.currency_code_renewed;
4414         p_to.last_update_login := p_from.last_update_login;
4415         p_to.upg_orig_system_ref := p_from.upg_orig_system_ref;
4416         p_to.upg_orig_system_ref_id := p_from.upg_orig_system_ref_id;
4417         p_to.application_id := p_from.application_id;
4418         p_to.orig_system_source_code := p_from.orig_system_source_code;
4419         p_to.orig_system_id1 := p_from.orig_system_id1;
4420         p_to.orig_system_reference1 := p_from.orig_system_reference1 ;
4421         p_to.program_id := p_from.program_id;
4422         p_to.request_id := p_from.request_id;
4423         p_to.program_update_date := p_from.program_update_date;
4424         p_to.program_application_id := p_from.program_application_id;
4425         p_to.price_list_id := p_from.price_list_id;
4426         p_to.pricing_date := p_from.pricing_date;
4427         p_to.sign_by_date := p_from.sign_by_date;
4428         p_to.total_line_list_price := p_from.total_line_list_price;
4429         p_to.USER_ESTIMATED_AMOUNT := p_from.USER_ESTIMATED_AMOUNT;
4430         p_to.GOVERNING_CONTRACT_YN := p_from.GOVERNING_CONTRACT_YN;
4431         p_to.attribute_category := p_from.attribute_category;
4432         p_to.attribute1 := p_from.attribute1;
4433         p_to.attribute2 := p_from.attribute2;
4434         p_to.attribute3 := p_from.attribute3;
4435         p_to.attribute4 := p_from.attribute4;
4436         p_to.attribute5 := p_from.attribute5;
4437         p_to.attribute6 := p_from.attribute6;
4438         p_to.attribute7 := p_from.attribute7;
4439         p_to.attribute8 := p_from.attribute8;
4440         p_to.attribute9 := p_from.attribute9;
4441         p_to.attribute10 := p_from.attribute10;
4442         p_to.attribute11 := p_from.attribute11;
4443         p_to.attribute12 := p_from.attribute12;
4444         p_to.attribute13 := p_from.attribute13;
4445         p_to.attribute14 := p_from.attribute14;
4446         p_to.attribute15 := p_from.attribute15;
4447      --new columns to replace rules
4448         p_to.conversion_type := p_from.conversion_type;
4449         p_to.conversion_rate := p_from.conversion_rate;
4450         p_to.conversion_rate_date := p_from.conversion_rate_date;
4451         p_to.conversion_euro_rate := p_from.conversion_euro_rate;
4452         p_to.cust_acct_id := p_from.cust_acct_id;
4453         p_to.bill_to_site_use_id := p_from.bill_to_site_use_id;
4454         p_to.inv_rule_id := p_from.inv_rule_id;
4455         p_to.renewal_type_code := p_from.renewal_type_code;
4456         p_to.renewal_notify_to := p_from.renewal_notify_to;
4457         p_to.renewal_end_date := p_from.renewal_end_date;
4458         p_to.ship_to_site_use_id := p_from.ship_to_site_use_id;
4459         p_to.payment_term_id := p_from.payment_term_id;
4460         p_to.document_id := p_from.document_id;
4461 
4462 -- R12 Data Model Changes 4485150 Start
4463         p_to.approval_type := p_from.approval_type;
4464         p_to.term_cancel_source := p_from.term_cancel_source;
4465         p_to.payment_instruction_type := p_from.payment_instruction_type;
4466         p_to.org_id := p_from.org_id; --mmadhavi added for MOAC
4467 -- R12 Data Model Changes 4485150 End
4468  	   p_to.cancelled_amount := p_from.cancelled_amount; -- LLC
4469 
4470     END migrate;
4471     PROCEDURE migrate (
4472                        p_from IN chrv_rec_type,
4473                        p_to IN OUT NOCOPY okc_k_headers_tl_rec_type
4474                        ) IS
4475     BEGIN
4476 
4477         IF (l_debug = 'Y') THEN
4478             okc_debug.Set_Indentation('OKC_CHR_PVT');
4479             okc_debug.LOG('12400: Entered migrate', 2);
4480         END IF;
4481 
4482         p_to.id := p_from.id;
4483         p_to.sfwt_flag := p_from.sfwt_flag;
4484         p_to.short_description := p_from.short_description;
4485         p_to.comments := p_from.comments;
4486         p_to.description := p_from.description;
4487         p_to.cognomen := p_from.cognomen;
4488         p_to.non_response_reason := p_from.non_response_reason;
4489         p_to.non_response_explain := p_from.non_response_explain;
4490         p_to.set_aside_reason := p_from.set_aside_reason;
4491         p_to.created_by := p_from.created_by;
4492         p_to.creation_date := p_from.creation_date;
4493         p_to.last_updated_by := p_from.last_updated_by;
4494         p_to.last_update_date := p_from.last_update_date;
4495         p_to.last_update_login := p_from.last_update_login;
4496 
4497     END migrate;
4498     PROCEDURE migrate (
4499                        p_from IN okc_k_headers_tl_rec_type,
4500                        p_to IN OUT NOCOPY chrv_rec_type
4501                        ) IS
4502     BEGIN
4503 
4504         IF (l_debug = 'Y') THEN
4505             okc_debug.Set_Indentation('OKC_CHR_PVT');
4506             okc_debug.LOG('12500: Entered migrate', 2);
4507         END IF;
4508 
4509         p_to.id := p_from.id;
4510         p_to.sfwt_flag := p_from.sfwt_flag;
4511         p_to.short_description := p_from.short_description;
4512         p_to.comments := p_from.comments;
4513         p_to.description := p_from.description;
4514         p_to.cognomen := p_from.cognomen;
4515         p_to.non_response_reason := p_from.non_response_reason;
4516         p_to.non_response_explain := p_from.non_response_explain;
4517         p_to.set_aside_reason := p_from.set_aside_reason;
4518         p_to.created_by := p_from.created_by;
4519         p_to.creation_date := p_from.creation_date;
4520         p_to.last_updated_by := p_from.last_updated_by;
4521         p_to.last_update_date := p_from.last_update_date;
4522         p_to.last_update_login := p_from.last_update_login;
4523 
4524     END migrate;
4525 
4526   ---------------------------------------------------------------------------
4527   -- PROCEDURE validate_row
4528   ---------------------------------------------------------------------------
4529   --------------------------------------
4530   -- validate_row for:OKC_K_HEADERS_V --
4531   --------------------------------------
4532     PROCEDURE validate_row(
4533                            p_api_version IN NUMBER,
4534                            p_init_msg_list IN VARCHAR2,
4535                            x_return_status OUT NOCOPY VARCHAR2,
4536                            x_msg_count OUT NOCOPY NUMBER,
4537                            x_msg_data OUT NOCOPY VARCHAR2,
4538                            p_chrv_rec IN chrv_rec_type) IS
4539 
4540     l_api_version CONSTANT NUMBER := 1;
4541     l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
4542     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4543     l_chrv_rec chrv_rec_type := p_chrv_rec;
4544     l_chr_rec chr_rec_type;
4545     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
4546     BEGIN
4547 
4548         IF (l_debug = 'Y') THEN
4549             okc_debug.Set_Indentation('OKC_CHR_PVT');
4550             okc_debug.LOG('12600: Entered validate_row', 2);
4551         END IF;
4552 
4553         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4554                                                   G_PKG_NAME,
4555                                                   p_init_msg_list,
4556                                                   l_api_version,
4557                                                   p_api_version,
4558                                                   '_PVT',
4559                                                   x_return_status);
4560         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4561             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4562         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4563             RAISE OKC_API.G_EXCEPTION_ERROR;
4564         END IF;
4565 
4566         IF p_chrv_rec.VALIDATE_YN = 'Y' THEN ---Bug#3150149
4567        --- Validate all non-missing attributes (Item Level Validation)
4568             l_return_status := Validate_Attributes(l_chrv_rec);
4569         END IF;
4570 
4571     --- If any errors happen abort API
4572         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4573             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4574         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4575             RAISE OKC_API.G_EXCEPTION_ERROR;
4576         END IF;
4577         l_return_status := Validate_Record(l_chrv_rec);
4578         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4579             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4580         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4581             RAISE OKC_API.G_EXCEPTION_ERROR;
4582         END IF;
4583         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4584         IF (l_debug = 'Y') THEN
4585             okc_debug.LOG('12700: Exiting validate_row', 2);
4586             okc_debug.Reset_Indentation;
4587         END IF;
4588 
4589 
4590     EXCEPTION
4591         WHEN OKC_API.G_EXCEPTION_ERROR THEN
4592 
4593             IF (l_debug = 'Y') THEN
4594                 okc_debug.LOG('12800: Exiting validate_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
4595                 okc_debug.Reset_Indentation;
4596             END IF;
4597 
4598             x_return_status := OKC_API.HANDLE_EXCEPTIONS
4599             (
4600              l_api_name,
4601              G_PKG_NAME,
4602              'OKC_API.G_RET_STS_ERROR',
4603              x_msg_count,
4604              x_msg_data,
4605              '_PVT'
4606              );
4607         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4608 
4609             IF (l_debug = 'Y') THEN
4610                 okc_debug.LOG('12900: Exiting validate_row:OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
4611                 okc_debug.Reset_Indentation;
4612             END IF;
4613 
4614             x_return_status := OKC_API.HANDLE_EXCEPTIONS
4615             (
4616              l_api_name,
4617              G_PKG_NAME,
4618              'OKC_API.G_RET_STS_UNEXP_ERROR',
4619              x_msg_count,
4620              x_msg_data,
4621              '_PVT'
4622              );
4623         WHEN OTHERS THEN
4624 
4625             IF (l_debug = 'Y') THEN
4626                 okc_debug.LOG('13000: Exiting validate_row:OTHERS Exception', 2);
4627                 okc_debug.Reset_Indentation;
4628             END IF;
4629 
4630             x_return_status := OKC_API.HANDLE_EXCEPTIONS
4631             (
4632              l_api_name,
4633              G_PKG_NAME,
4634              'OTHERS',
4635              x_msg_count,
4636              x_msg_data,
4637              '_PVT'
4638              );
4639 
4640     END validate_row;
4641   ------------------------------------------
4642   -- PL/SQL TBL validate_row for:CHRV_TBL --
4643   ------------------------------------------
4644     PROCEDURE validate_row(
4645                            p_api_version IN NUMBER,
4646                            p_init_msg_list IN VARCHAR2,
4647                            x_return_status OUT NOCOPY VARCHAR2,
4648                            x_msg_count OUT NOCOPY NUMBER,
4649                            x_msg_data OUT NOCOPY VARCHAR2,
4650                            p_chrv_tbl IN chrv_tbl_type) IS
4651 
4652     l_api_version CONSTANT NUMBER := 1;
4653     l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
4654     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4655     l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4656     i NUMBER := 0;
4657     BEGIN
4658 
4659         IF (l_debug = 'Y') THEN
4660             okc_debug.Set_Indentation('OKC_CHR_PVT');
4661             okc_debug.LOG('13100: Entered validate_row', 2);
4662         END IF;
4663 
4664         OKC_API.init_msg_list(p_init_msg_list);
4665     -- Make sure PL/SQL table has records in it before passing
4666         IF (p_chrv_tbl.COUNT > 0) THEN
4667             i := p_chrv_tbl.FIRST;
4668             LOOP
4669                 validate_row (
4670                               p_api_version => p_api_version,
4671                               p_init_msg_list => OKC_API.G_FALSE,
4672                               x_return_status => x_return_status,
4673                               x_msg_count => x_msg_count,
4674                               x_msg_data => x_msg_data,
4675                               p_chrv_rec => p_chrv_tbl(i));
4676 
4677 		-- store the highest degree of error
4678                 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
4679                     IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
4680                         l_overall_status := x_return_status;
4681                     END IF;
4682                 END IF;
4683 
4684                 EXIT WHEN (i = p_chrv_tbl.LAST);
4685                 i := p_chrv_tbl.NEXT(i);
4686             END LOOP;
4687 	 -- return overall status
4688             x_return_status := l_overall_status;
4689         END IF;
4690         IF (l_debug = 'Y') THEN
4691             okc_debug.LOG('13200: Exiting validate_row', 2);
4692             okc_debug.Reset_Indentation;
4693         END IF;
4694 
4695 
4696     EXCEPTION
4697         WHEN OKC_API.G_EXCEPTION_ERROR THEN
4698 
4699             IF (l_debug = 'Y') THEN
4700                 okc_debug.LOG('13300: Exiting validate_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
4701                 okc_debug.Reset_Indentation;
4702             END IF;
4703 
4704             x_return_status := OKC_API.HANDLE_EXCEPTIONS
4705             (
4706              l_api_name,
4707              G_PKG_NAME,
4708              'OKC_API.G_RET_STS_ERROR',
4709              x_msg_count,
4710              x_msg_data,
4711              '_PVT'
4712              );
4713         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4714 
4715             IF (l_debug = 'Y') THEN
4716                 okc_debug.LOG('13400: Exiting validate_row:OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
4717                 okc_debug.Reset_Indentation;
4718             END IF;
4719 
4720             x_return_status := OKC_API.HANDLE_EXCEPTIONS
4721             (
4722              l_api_name,
4723              G_PKG_NAME,
4724              'OKC_API.G_RET_STS_UNEXP_ERROR',
4725              x_msg_count,
4726              x_msg_data,
4727              '_PVT'
4728              );
4729         WHEN OTHERS THEN
4730 
4731             IF (l_debug = 'Y') THEN
4732                 okc_debug.LOG('13500: Exiting validate_row:OTHERS Exception', 2);
4733                 okc_debug.Reset_Indentation;
4734             END IF;
4735 
4736             x_return_status := OKC_API.HANDLE_EXCEPTIONS
4737             (
4738              l_api_name,
4739              G_PKG_NAME,
4740              'OTHERS',
4741              x_msg_count,
4742              x_msg_data,
4743              '_PVT'
4744              );
4745 
4746     END validate_row;
4747 
4748   ---------------------------------------------------------------------------
4749   -- PROCEDURE insert_row
4750   ---------------------------------------------------------------------------
4751   ------------------------------------
4752   -- insert_row for:OKC_K_HEADERS_ALL_B --
4753   ------------------------------------
4754     PROCEDURE insert_row(
4755                          p_init_msg_list IN VARCHAR2,
4756                          x_return_status OUT NOCOPY VARCHAR2,
4757                          x_msg_count OUT NOCOPY NUMBER,
4758                          x_msg_data OUT NOCOPY VARCHAR2,
4759                          p_chr_rec IN chr_rec_type,
4760                          x_chr_rec OUT NOCOPY chr_rec_type) IS
4761 
4762     l_api_version CONSTANT NUMBER := 1;
4763     l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
4764     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4765     l_chr_rec chr_rec_type := p_chr_rec;
4766     l_def_chr_rec chr_rec_type;
4767     ----------------------------------------
4768     -- Set_Attributes for:OKC_K_HEADERS_ALL_B --
4769     ----------------------------------------
4770     FUNCTION Set_Attributes (
4771                              p_chr_rec IN chr_rec_type,
4772                              x_chr_rec OUT NOCOPY chr_rec_type
4773                              ) RETURN VARCHAR2 IS
4774     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4775     BEGIN
4776 
4777         IF (l_debug = 'Y') THEN
4778             okc_debug.Set_Indentation('OKC_CHR_PVT');
4779             okc_debug.LOG('13600: Entered Set_Attributes', 2);
4780         END IF;
4781 
4782         x_chr_rec := p_chr_rec;
4783         RETURN(l_return_status);
4784 
4785     END Set_Attributes;
4786     BEGIN
4787 
4788         IF (l_debug = 'Y') THEN
4789             okc_debug.Set_Indentation('OKC_CHR_PVT');
4790             okc_debug.LOG('13700: Entered insert_row', 2);
4791         END IF;
4792 
4793         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4794                                                   p_init_msg_list,
4795                                                   '_PVT',
4796                                                   x_return_status);
4797         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4798             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4799         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4800             RAISE OKC_API.G_EXCEPTION_ERROR;
4801         END IF;
4802     --- Setting item attributes
4803         l_return_status := Set_Attributes(
4804                                           p_chr_rec,  -- IN
4805                                           l_chr_rec); -- OUT
4806     --- If any errors happen abort API
4807         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4808             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4809         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4810             RAISE OKC_API.G_EXCEPTION_ERROR;
4811         END IF;
4812         INSERT INTO OKC_K_HEADERS_ALL_B( --mmadhavi changed to _ALL for MOAC
4813                                         id,
4814                                         contract_number,
4815                                         authoring_org_id,
4816                                         org_id,  --mmadhavi added for MOAC
4817                                         contract_number_modifier,
4818                                         chr_id_response,
4819                                         chr_id_award,
4820                                         INV_ORGANIZATION_ID,
4821                                         sts_code,
4822                                         qcl_id,
4823                                         scs_code,
4824                                         trn_code,
4825                                         currency_code,
4826                                         archived_yn,
4827                                         deleted_yn,
4828                                         template_yn,
4829                                         chr_type,
4830                                         object_version_number,
4831                                         created_by,
4832                                         creation_date,
4833                                         last_updated_by,
4834                                         last_update_date,
4835                                         cust_po_number_req_yn,
4836                                         pre_pay_req_yn,
4837                                         cust_po_number,
4838                                         dpas_rating,
4839                                         template_used,
4840                                         date_approved,
4841                                         datetime_cancelled,
4842                                         auto_renew_days,
4843                                         date_issued,
4844                                         datetime_responded,
4845                                         rfp_type,
4846                                         keep_on_mail_list,
4847                                         set_aside_percent,
4848                                         response_copies_req,
4849                                         date_close_projected,
4850                                         datetime_proposed,
4851                                         date_signed,
4852                                         date_terminated,
4853                                         date_renewed,
4854                                         start_date,
4855                                         end_date,
4856                                         buy_or_sell,
4857                                         issue_or_receive,
4858                                         estimated_amount,
4859                                         estimated_amount_renewed,
4860                                         currency_code_renewed,
4861                                         last_update_login,
4862                                         upg_orig_system_ref,
4863                                         upg_orig_system_ref_id,
4864                                         application_id,
4865                                         orig_system_source_code,
4866                                         orig_system_id1,
4867                                         orig_system_reference1,
4868                                         program_id,
4869                                         request_id,
4870                                         program_update_date,
4871                                         program_application_id,
4872                                         price_list_id,
4873                                         pricing_date,
4874                                         sign_by_date,
4875                                         total_line_list_price,
4876                                         USER_ESTIMATED_AMOUNT,
4877                                         GOVERNING_CONTRACT_YN,
4878                                         attribute_category,
4879                                         attribute1,
4880                                         attribute2,
4881                                         attribute3,
4882                                         attribute4,
4883                                         attribute5,
4884                                         attribute6,
4885                                         attribute7,
4886                                         attribute8,
4887                                         attribute9,
4888                                         attribute10,
4889                                         attribute11,
4890                                         attribute12,
4891                                         attribute13,
4892                                         attribute14,
4893                                         attribute15,
4894                                         -- new columns to replace rules
4895                                         conversion_type,
4896                                         conversion_rate,
4897                                         conversion_rate_date,
4898                                         conversion_euro_rate,
4899                                         cust_acct_id,
4900                                         bill_to_site_use_id,
4901                                         inv_rule_id,
4902                                         renewal_type_code,
4903                                         renewal_notify_to,
4904                                         renewal_end_date,
4905                                         ship_to_site_use_id,
4906                                         payment_term_id,
4907                                         document_id,
4908                                         -- R12 Data Model Changes 4485150 Start
4909                                         approval_type,
4910                                         term_cancel_source,
4911                                         payment_instruction_type,
4912                                         -- R12 Data Model Changes 4485150 End
4913 					billed_at_source
4914                                         )
4915           VALUES (
4916                   l_chr_rec.id,
4917                   l_chr_rec.contract_number,
4918                   --l_chr_rec.authoring_org_id,
4919                   l_chr_rec.authoring_org_id,
4920                   l_chr_rec.org_id,  --mmadhavi added for MOAC
4921                   l_chr_rec.contract_number_modifier,
4922                   l_chr_rec.chr_id_response,
4923                   l_chr_rec.chr_id_award,
4924                   l_chr_rec.INV_ORGANIZATION_ID,
4925                   l_chr_rec.sts_code,
4926                   l_chr_rec.qcl_id,
4927                   l_chr_rec.scs_code,
4928                   l_chr_rec.trn_code,
4929                   l_chr_rec.currency_code,
4930                   l_chr_rec.archived_yn,
4931                   l_chr_rec.deleted_yn,
4932                   l_chr_rec.template_yn,
4933                   l_chr_rec.chr_type,
4934                   l_chr_rec.object_version_number,
4935                   l_chr_rec.created_by,
4936                   l_chr_rec.creation_date,
4937                   l_chr_rec.last_updated_by,
4938                   l_chr_rec.last_update_date,
4939                   l_chr_rec.cust_po_number_req_yn,
4940                   l_chr_rec.pre_pay_req_yn,
4941                   l_chr_rec.cust_po_number,
4942                   l_chr_rec.dpas_rating,
4943                   l_chr_rec.template_used,
4944                   l_chr_rec.date_approved,
4945                   l_chr_rec.datetime_cancelled,
4946                   l_chr_rec.auto_renew_days,
4947                   l_chr_rec.date_issued,
4948                   l_chr_rec.datetime_responded,
4949                   l_chr_rec.rfp_type,
4950                   l_chr_rec.keep_on_mail_list,
4951                   l_chr_rec.set_aside_percent,
4952                   l_chr_rec.response_copies_req,
4953                   l_chr_rec.date_close_projected,
4954                   l_chr_rec.datetime_proposed,
4955                   l_chr_rec.date_signed,
4956                   l_chr_rec.date_terminated,
4957                   l_chr_rec.date_renewed,
4958                   l_chr_rec.start_date,
4959                   l_chr_rec.end_date,
4960                   l_chr_rec.buy_or_sell,
4961                   l_chr_rec.issue_or_receive,
4962                   l_chr_rec.estimated_amount,
4963                   l_chr_rec.estimated_amount_renewed,
4964                   l_chr_rec.currency_code_renewed,
4965                   l_chr_rec.last_update_login,
4966                   l_chr_rec.upg_orig_system_ref,
4967                   l_chr_rec.upg_orig_system_ref_id,
4968                   l_chr_rec.application_id,
4969                   l_chr_rec.orig_system_source_code,
4970                   l_chr_rec.orig_system_id1,
4971                   l_chr_rec.orig_system_reference1,
4972                   decode(FND_GLOBAL.CONC_PROGRAM_ID, - 1, NULL, FND_GLOBAL.CONC_PROGRAM_ID),
4973                   decode(FND_GLOBAL.CONC_REQUEST_ID, - 1, NULL, FND_GLOBAL.CONC_REQUEST_ID),
4974                   decode(FND_GLOBAL.CONC_REQUEST_ID, - 1, NULL, SYSDATE),
4975                   decode(FND_GLOBAL.PROG_APPL_ID, - 1, NULL, FND_GLOBAL.PROG_APPL_ID),
4976                   l_chr_rec.price_list_id,
4977                   l_chr_rec.pricing_date,
4978                   l_chr_rec.sign_by_date,
4979                   l_chr_rec.total_line_list_price,
4980                   l_chr_rec.USER_ESTIMATED_AMOUNT,
4981                   l_chr_rec.GOVERNING_CONTRACT_YN,
4982                   l_chr_rec.attribute_category,
4983                   l_chr_rec.attribute1,
4984                   l_chr_rec.attribute2,
4985                   l_chr_rec.attribute3,
4986                   l_chr_rec.attribute4,
4987                   l_chr_rec.attribute5,
4988                   l_chr_rec.attribute6,
4989                   l_chr_rec.attribute7,
4990                   l_chr_rec.attribute8,
4991                   l_chr_rec.attribute9,
4992                   l_chr_rec.attribute10,
4993                   l_chr_rec.attribute11,
4994                   l_chr_rec.attribute12,
4995                   l_chr_rec.attribute13,
4996                   l_chr_rec.attribute14,
4997                   l_chr_rec.attribute15,
4998                   -- new columns to replace rules
4999                   l_chr_rec.conversion_type,
5000                   l_chr_rec.conversion_rate,
5001                   l_chr_rec.conversion_rate_date,
5002                   l_chr_rec.conversion_euro_rate,
5003                   l_chr_rec.cust_acct_id,
5004                   l_chr_rec.bill_to_site_use_id,
5005                   l_chr_rec.inv_rule_id,
5006                   l_chr_rec.renewal_type_code,
5007                   l_chr_rec.renewal_notify_to,
5008                   l_chr_rec.renewal_end_date,
5009                   l_chr_rec.ship_to_site_use_id,
5010                   l_chr_rec.payment_term_id,
5011                   l_chr_rec.id,
5012                   -- R12 Data Model Changes 4485150 Start
5013                   l_chr_rec.approval_type,
5014                   l_chr_rec.term_cancel_source,
5015                   l_chr_rec.payment_instruction_type,
5016                   -- R12 Data Model Changes 4485150 End
5017                   l_chr_rec.billed_at_source
5018                   );
5019     -- Set OUT values
5020         x_chr_rec := l_chr_rec;
5021         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5022         IF (l_debug = 'Y') THEN
5023             okc_debug.LOG('13800: Exiting insert_row', 2);
5024             okc_debug.Reset_Indentation;
5025         END IF;
5026 
5027 
5028     EXCEPTION
5029         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5030 
5031             IF (l_debug = 'Y') THEN
5032                 okc_debug.LOG('13900: Exiting insert_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5033                 okc_debug.Reset_Indentation;
5034             END IF;
5035 
5036             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5037             (
5038              l_api_name,
5039              G_PKG_NAME,
5040              'OKC_API.G_RET_STS_ERROR',
5041              x_msg_count,
5042              x_msg_data,
5043              '_PVT'
5044              );
5045         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5046 
5047             IF (l_debug = 'Y') THEN
5048                 okc_debug.LOG('14000: Exiting insert_row:OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
5049                 okc_debug.Reset_Indentation;
5050             END IF;
5051 
5052             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5053             (
5054              l_api_name,
5055              G_PKG_NAME,
5056              'OKC_API.G_RET_STS_UNEXP_ERROR',
5057              x_msg_count,
5058              x_msg_data,
5059              '_PVT'
5060              );
5061         WHEN OTHERS THEN
5062 
5063             IF (l_debug = 'Y') THEN
5064                 okc_debug.LOG('14100: Exiting insert_row:OTHERS Exception', 2);
5065                 okc_debug.Reset_Indentation;
5066             END IF;
5067 
5068             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5069             (
5070              l_api_name,
5071              G_PKG_NAME,
5072              'OTHERS',
5073              x_msg_count,
5074              x_msg_data,
5075              '_PVT'
5076              );
5077 
5078     END insert_row;
5079   -------------------------------------
5080   -- insert_row for:OKC_K_HEADERS_TL --
5081   -------------------------------------
5082     PROCEDURE insert_row(
5083                          p_init_msg_list IN VARCHAR2,
5084                          x_return_status OUT NOCOPY VARCHAR2,
5085                          x_msg_count OUT NOCOPY NUMBER,
5086                          x_msg_data OUT NOCOPY VARCHAR2,
5087                          p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type,
5088                          x_okc_k_headers_tl_rec OUT NOCOPY okc_k_headers_tl_rec_type) IS
5089 
5090     l_api_version CONSTANT NUMBER := 1;
5091     l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
5092     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5093     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type := p_okc_k_headers_tl_rec;
5094     l_def_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
5095     CURSOR get_languages IS
5096         SELECT *
5097           FROM FND_LANGUAGES
5098          WHERE INSTALLED_FLAG IN ('I', 'B');
5099     -----------------------------------------
5100     -- Set_Attributes for:OKC_K_HEADERS_TL --
5101     -----------------------------------------
5102     FUNCTION Set_Attributes (
5103                              p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type,
5104                              x_okc_k_headers_tl_rec OUT NOCOPY okc_k_headers_tl_rec_type
5105                              ) RETURN VARCHAR2 IS
5106     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5107     BEGIN
5108 
5109         IF (l_debug = 'Y') THEN
5110             okc_debug.Set_Indentation('OKC_CHR_PVT');
5111             okc_debug.LOG('14200: Entered Set_Attributes', 2);
5112         END IF;
5113 
5114         x_okc_k_headers_tl_rec := p_okc_k_headers_tl_rec;
5115         x_okc_k_headers_tl_rec.LANGUAGE := okc_util.get_userenv_lang;
5116         x_okc_k_headers_tl_rec.SOURCE_LANG := okc_util.get_userenv_lang;
5117         RETURN(l_return_status);
5118 
5119     END Set_Attributes;
5120     BEGIN
5121 
5122         IF (l_debug = 'Y') THEN
5123             okc_debug.Set_Indentation('OKC_CHR_PVT');
5124             okc_debug.LOG('14300: Entered insert_row', 2);
5125         END IF;
5126 
5127         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5128                                                   p_init_msg_list,
5129                                                   '_PVT',
5130                                                   x_return_status);
5131         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5132             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5133         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5134             RAISE OKC_API.G_EXCEPTION_ERROR;
5135         END IF;
5136     --- Setting item attributes
5137         l_return_status := Set_Attributes(
5138                                           p_okc_k_headers_tl_rec,  -- IN
5139                                           l_okc_k_headers_tl_rec); -- OUT
5140     --- If any errors happen abort API
5141         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5142             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5143         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5144             RAISE OKC_API.G_EXCEPTION_ERROR;
5145         END IF;
5146         FOR l_lang_rec IN get_languages LOOP
5147             l_okc_k_headers_tl_rec.language := l_lang_rec.language_code;
5148             INSERT INTO OKC_K_HEADERS_TL(
5149                                          id,
5150                                          language,
5151                                          source_lang,
5152                                          sfwt_flag,
5153                                          short_description,
5154                                          comments,
5155                                          description,
5156                                          cognomen,
5157                                          non_response_reason,
5158                                          non_response_explain,
5159                                          set_aside_reason,
5160                                          created_by,
5161                                          creation_date,
5162                                          last_updated_by,
5163                                          last_update_date,
5164                                          last_update_login)
5165               VALUES (
5166                       l_okc_k_headers_tl_rec.id,
5167                       l_okc_k_headers_tl_rec.language,
5168                       l_okc_k_headers_tl_rec.source_lang,
5169                       l_okc_k_headers_tl_rec.sfwt_flag,
5170                       l_okc_k_headers_tl_rec.short_description,
5171                       l_okc_k_headers_tl_rec.comments,
5172                       l_okc_k_headers_tl_rec.description,
5173                       l_okc_k_headers_tl_rec.cognomen,
5174                       l_okc_k_headers_tl_rec.non_response_reason,
5175                       l_okc_k_headers_tl_rec.non_response_explain,
5176                       l_okc_k_headers_tl_rec.set_aside_reason,
5177                       l_okc_k_headers_tl_rec.created_by,
5178                       l_okc_k_headers_tl_rec.creation_date,
5179                       l_okc_k_headers_tl_rec.last_updated_by,
5180                       l_okc_k_headers_tl_rec.last_update_date,
5181                       l_okc_k_headers_tl_rec.last_update_login);
5182         END LOOP;
5183     -- Set OUT values
5184         x_okc_k_headers_tl_rec := l_okc_k_headers_tl_rec;
5185         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5186         IF (l_debug = 'Y') THEN
5187             okc_debug.LOG('14400: Exiting insert_row', 2);
5188             okc_debug.Reset_Indentation;
5189         END IF;
5190 
5191 
5192     EXCEPTION
5193         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5194 
5195             IF (l_debug = 'Y') THEN
5196                 okc_debug.LOG('14500: Exiting insert_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5197                 okc_debug.Reset_Indentation;
5198             END IF;
5199 
5200             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5201             (
5202              l_api_name,
5203              G_PKG_NAME,
5204              'OKC_API.G_RET_STS_ERROR',
5205              x_msg_count,
5206              x_msg_data,
5207              '_PVT'
5208              );
5209         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5210 
5211             IF (l_debug = 'Y') THEN
5212                 okc_debug.LOG('14600: Exiting insert_row:OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
5213                 okc_debug.Reset_Indentation;
5214             END IF;
5215 
5216             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5217             (
5218              l_api_name,
5219              G_PKG_NAME,
5220              'OKC_API.G_RET_STS_UNEXP_ERROR',
5221              x_msg_count,
5222              x_msg_data,
5223              '_PVT'
5224              );
5225         WHEN OTHERS THEN
5226 
5227             IF (l_debug = 'Y') THEN
5228                 okc_debug.LOG('14700: Exiting insert_row:OTHERS Exception', 2);
5229                 okc_debug.Reset_Indentation;
5230             END IF;
5231 
5232             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5233             (
5234              l_api_name,
5235              G_PKG_NAME,
5236              'OTHERS',
5237              x_msg_count,
5238              x_msg_data,
5239              '_PVT'
5240              );
5241 
5242     END insert_row;
5243   ------------------------------------
5244   -- insert_row for:OKC_K_HEADERS_V --
5245   ------------------------------------
5246     PROCEDURE insert_row(
5247                          p_api_version IN NUMBER,
5248                          p_init_msg_list IN VARCHAR2,
5249                          x_return_status OUT NOCOPY VARCHAR2,
5250                          x_msg_count OUT NOCOPY NUMBER,
5251                          x_msg_data OUT NOCOPY VARCHAR2,
5252                          p_chrv_rec IN chrv_rec_type,
5253                          x_chrv_rec OUT NOCOPY chrv_rec_type) IS
5254 
5255     l_api_version CONSTANT NUMBER := 1;
5256     l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
5257     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5258     l_chrv_rec chrv_rec_type;
5259     l_def_chrv_rec chrv_rec_type;
5260     l_chr_rec chr_rec_type;
5261     lx_chr_rec chr_rec_type;
5262     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
5263     lx_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
5264     -------------------------------
5265     -- FUNCTION fill_who_columns --
5266     -------------------------------
5267     FUNCTION fill_who_columns (
5268                                p_chrv_rec IN chrv_rec_type
5269                                ) RETURN chrv_rec_type IS
5270     l_chrv_rec chrv_rec_type := p_chrv_rec;
5271     BEGIN
5272 
5273         IF (l_debug = 'Y') THEN
5274             okc_debug.Set_Indentation('OKC_CHR_PVT');
5275             okc_debug.LOG('14800: Entered fill_who_columns', 2);
5276         END IF;
5277 
5278         l_chrv_rec.CREATION_DATE := SYSDATE;
5279         l_chrv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
5280         l_chrv_rec.LAST_UPDATE_DATE := l_chrv_rec.CREATION_DATE;
5281         l_chrv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
5282         l_chrv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
5283         RETURN(l_chrv_rec);
5284 
5285     END fill_who_columns;
5286     ----------------------------------------
5287     -- Set_Attributes for:OKC_K_HEADERS_V --
5288     ----------------------------------------
5289     FUNCTION Set_Attributes (
5290                              p_chrv_rec IN chrv_rec_type,
5291                              x_chrv_rec OUT NOCOPY chrv_rec_type
5292                              ) RETURN VARCHAR2 IS
5293     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5294     CURSOR l_app_csr(p_scs_code VARCHAR2) IS
5295         SELECT application_id
5296         FROM okc_classes_b cls, okc_subclasses_b scs
5297         WHERE cls.code = scs.cls_code
5298         AND scs.code = p_scs_code;
5299     BEGIN
5300 
5301         IF (l_debug = 'Y') THEN
5302             okc_debug.Set_Indentation('OKC_CHR_PVT');
5303             okc_debug.LOG('14900: Entered Set_Attributes', 2);
5304         END IF;
5305 
5306         x_chrv_rec := p_chrv_rec;
5307         x_chrv_rec.OBJECT_VERSION_NUMBER := 1;
5308         x_chrv_rec.SFWT_FLAG := 'N';
5309       /************************ HAND-CODED *********************************/
5310         x_chrv_rec.ARCHIVED_YN := UPPER(x_chrv_rec.ARCHIVED_YN);
5311         x_chrv_rec.DELETED_YN := UPPER(x_chrv_rec.DELETED_YN);
5312         x_chrv_rec.CUST_PO_NUMBER_REQ_YN := UPPER(x_chrv_rec.CUST_PO_NUMBER_REQ_YN);
5313         x_chrv_rec.PRE_PAY_REQ_YN := UPPER(x_chrv_rec.PRE_PAY_REQ_YN);
5314         x_chrv_rec.TEMPLATE_YN := UPPER(x_chrv_rec.TEMPLATE_YN);
5315         x_chrv_rec.TEMPLATE_USED := UPPER(x_chrv_rec.TEMPLATE_USED);
5316         x_chrv_rec.KEEP_ON_MAIL_LIST := UPPER(x_chrv_rec.KEEP_ON_MAIL_LIST);
5317       --Supports only CYA in this release
5318         x_chrv_rec.CHR_TYPE := 'CYA';
5319         x_chrv_rec.AUTHORING_ORG_ID := nvl(OKC_CONTEXT.GET_OKC_ORG_ID, - 99);
5320         x_chrv_rec.ORG_ID := nvl(OKC_CONTEXT.GET_OKC_ORG_ID, - 99); --mmadhavi added for MOAC
5321         x_chrv_rec.INV_ORGANIZATION_ID := nvl(OKC_CONTEXT.GET_OKC_ORGANIZATION_ID, - 99);
5322  /* Bug 3652127 */
5323       -- populate application id
5324         OPEN l_app_csr(p_chrv_rec.scs_code);
5325         FETCH l_app_csr INTO l_application_id;
5326         CLOSE l_app_csr;
5327 
5328         x_chrv_rec.application_id := l_application_id;
5329       /*********************** END HAND-CODED ********************************/
5330         RETURN(l_return_status);
5331 
5332     END Set_Attributes;
5333     BEGIN
5334 
5335         IF (l_debug = 'Y') THEN
5336             okc_debug.Set_Indentation('OKC_CHR_PVT');
5337             okc_debug.LOG('15000: Entered insert_row', 2);
5338         END IF;
5339 
5340         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5341                                                   G_PKG_NAME,
5342                                                   p_init_msg_list,
5343                                                   l_api_version,
5344                                                   p_api_version,
5345                                                   '_PVT',
5346                                                   x_return_status);
5347         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5348             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5349         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5350             RAISE OKC_API.G_EXCEPTION_ERROR;
5351         END IF;
5352         l_chrv_rec := null_out_defaults(p_chrv_rec);
5353     -- Set primary key value
5354         l_chrv_rec.ID := get_seq_id;
5355         l_chrv_rec.DOCUMENT_ID := l_chrv_rec.ID;
5356     --- Setting item attributes
5357         l_return_status := Set_Attributes(
5358                                           l_chrv_rec,  -- IN
5359                                           l_def_chrv_rec); -- OUT
5360     --- If any errors happen abort API
5361         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5362             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5363         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5364             RAISE OKC_API.G_EXCEPTION_ERROR;
5365         END IF;
5366         l_def_chrv_rec := fill_who_columns(l_def_chrv_rec);
5367 
5368         IF p_chrv_rec.VALIDATE_YN = 'Y' THEN ---Bug#3150149
5369        --- Validate all non-missing attributes (Item Level Validation)
5370             l_return_status := Validate_Attributes(l_def_chrv_rec);
5371         END IF; ---Bug#3150149
5372 
5373     --- If any errors happen abort API
5374         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5375             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5376         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5377             RAISE OKC_API.G_EXCEPTION_ERROR;
5378         END IF;
5379         l_return_status := Validate_Record(l_def_chrv_rec);
5380         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5381             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5382         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5383             RAISE OKC_API.G_EXCEPTION_ERROR;
5384         END IF;
5385     --------------------------------------
5386     -- Move VIEW record to "Child" records
5387     --------------------------------------
5388         migrate(l_def_chrv_rec, l_chr_rec);
5389         migrate(l_def_chrv_rec, l_okc_k_headers_tl_rec);
5390 
5391     --------------------------------------------
5392     -- Call the INSERT_ROW for each child record
5393     --------------------------------------------
5394         insert_row(
5395                    p_init_msg_list,
5396                    x_return_status,
5397                    x_msg_count,
5398                    x_msg_data,
5399                    l_chr_rec,
5400                    lx_chr_rec
5401                    );
5402         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5403             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5404         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5405             RAISE OKC_API.G_EXCEPTION_ERROR;
5406         END IF;
5407         migrate(lx_chr_rec, l_def_chrv_rec);
5408         insert_row(
5409                    p_init_msg_list,
5410                    x_return_status,
5411                    x_msg_count,
5412                    x_msg_data,
5413                    l_okc_k_headers_tl_rec,
5414                    lx_okc_k_headers_tl_rec
5415                    );
5416         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5417             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5418         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5419             RAISE OKC_API.G_EXCEPTION_ERROR;
5420         END IF;
5421         migrate(lx_okc_k_headers_tl_rec, l_def_chrv_rec);
5422     -- Set OUT values
5423         x_chrv_rec := l_def_chrv_rec;
5424         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5425         IF (l_debug = 'Y') THEN
5426             okc_debug.LOG('15100: Exiting insert_row', 2);
5427             okc_debug.Reset_Indentation;
5428         END IF;
5429 
5430 
5431     EXCEPTION
5432         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5433 
5434             IF (l_debug = 'Y') THEN
5435                 okc_debug.LOG('15200: Exiting insert_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5436                 okc_debug.Reset_Indentation;
5437             END IF;
5438 
5439             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5440             (
5441              l_api_name,
5442              G_PKG_NAME,
5443              'OKC_API.G_RET_STS_ERROR',
5444              x_msg_count,
5445              x_msg_data,
5446              '_PVT'
5447              );
5448         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5449 
5450             IF (l_debug = 'Y') THEN
5451                 okc_debug.LOG('15300: Exiting insert_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
5460              x_msg_count,
5461              x_msg_data,
5462              '_PVT'
5463              );
5464         WHEN OTHERS THEN
5465 
5466             IF (l_debug = 'Y') THEN
5467                 okc_debug.LOG('15400: Exiting insert_row:OTHERS 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              'OTHERS',
5476              x_msg_count,
5477              x_msg_data,
5478              '_PVT'
5479              );
5480 
5481     END insert_row;
5482   ----------------------------------------
5483   -- PL/SQL TBL insert_row for:CHRV_TBL --
5484   ----------------------------------------
5485     PROCEDURE insert_row(
5486                          p_api_version IN NUMBER,
5487                          p_init_msg_list IN VARCHAR2,
5488                          x_return_status OUT NOCOPY VARCHAR2,
5489                          x_msg_count OUT NOCOPY NUMBER,
5490                          x_msg_data OUT NOCOPY VARCHAR2,
5491                          p_chrv_tbl IN chrv_tbl_type,
5492                          x_chrv_tbl OUT NOCOPY chrv_tbl_type) IS
5493 
5494     l_api_version CONSTANT NUMBER := 1;
5495     l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
5496     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5497     l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5498     i NUMBER := 0;
5499     l_chrv_rec OKC_CHR_PVT.chrv_rec_type;
5500     BEGIN
5501 
5502         IF (l_debug = 'Y') THEN
5503             okc_debug.Set_Indentation('OKC_CHR_PVT');
5504             okc_debug.LOG('15500: Entered insert_row', 2);
5505         END IF;
5506 
5507         OKC_API.init_msg_list(p_init_msg_list);
5508     -- Make sure PL/SQL table has records in it before passing
5509         IF (p_chrv_tbl.COUNT > 0) THEN
5510             i := p_chrv_tbl.FIRST;
5511             LOOP
5512 	   /************************ HAND-CODED ***************************/
5513                 x_return_status := OKC_API.G_RET_STS_SUCCESS;
5514                 l_chrv_rec := p_chrv_tbl(i);
5515         -- if contract number is null, polpulate default contract number
5516                 IF (l_chrv_rec.contract_number = OKC_API.G_MISS_CHAR OR
5517                     l_chrv_rec.contract_number IS NULL)
5518                     THEN
5519 
5520                     OKC_CONTRACT_PVT.GENERATE_CONTRACT_NUMBER(
5521                                                               p_scs_code => l_chrv_rec.scs_code,
5522                                                               p_modifier => l_chrv_rec.contract_number_modifier,
5523                                                               x_return_status => x_return_status,
5524                                                               x_contract_number => l_chrv_rec.contract_number);
5525 
5526                     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5527                         OKC_API.SET_MESSAGE(p_app_name => g_app_name,
5528                                             p_msg_name => g_unexpected_error,
5529                                             p_token1 => g_sqlcode_token,
5530                                             p_token1_value => SQLCODE,
5531                                             p_token2 => g_sqlerrm_token,
5532                                             p_token2_value => SQLERRM);
5533                     END IF;
5534                 END IF;
5535 
5536                 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
5537                     insert_row (
5538                                 p_api_version => p_api_version,
5539                                 p_init_msg_list => p_init_msg_list,
5540                                 x_return_status => x_return_status,
5541                                 x_msg_count => x_msg_count,
5542                                 x_msg_data => x_msg_data,
5543                                 p_chrv_rec => l_chrv_rec,
5544                                 x_chrv_rec => x_chrv_tbl(i));
5545                 END IF;
5546 
5547 		-- store the highest degree of error
5548                 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
5549                     IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
5550                         l_overall_status := x_return_status;
5551                     END IF;
5552                 END IF;
5553 	   /*********************** END HAND-CODED ************************/
5554                 EXIT WHEN (i = p_chrv_tbl.LAST);
5555                 i := p_chrv_tbl.NEXT(i);
5556             END LOOP;
5557 	 -- return overall status
5558             x_return_status := l_overall_status;
5559         END IF;
5560         IF (l_debug = 'Y') THEN
5561             okc_debug.LOG('15600: Exiting insert_row', 2);
5562             okc_debug.Reset_Indentation;
5563         END IF;
5564 
5565 
5566     EXCEPTION
5567         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5568 
5569             IF (l_debug = 'Y') THEN
5570                 okc_debug.LOG('15700: Exiting insert_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5571                 okc_debug.Reset_Indentation;
5572             END IF;
5573 
5574             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5575             (
5576              l_api_name,
5577              G_PKG_NAME,
5578              'OKC_API.G_RET_STS_ERROR',
5579              x_msg_count,
5580              x_msg_data,
5581              '_PVT'
5582              );
5583         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5584 
5585             IF (l_debug = 'Y') THEN
5586                 okc_debug.LOG('15800: Exiting insert_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
5595              x_msg_count,
5596              x_msg_data,
5597              '_PVT'
5598              );
5599         WHEN OTHERS THEN
5600 
5601             IF (l_debug = 'Y') THEN
5602                 okc_debug.LOG('15900: Exiting insert_row:OTHERS 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              'OTHERS',
5611              x_msg_count,
5612              x_msg_data,
5613              '_PVT'
5614              );
5615 
5616     END insert_row;
5617 
5618   ---------------------------------------------------------------------------
5619   -- PROCEDURE lock_row
5620   ---------------------------------------------------------------------------
5621   ----------------------------------
5622   -- lock_row for:OKC_K_HEADERS_ALL_B --
5623   ----------------------------------
5624     PROCEDURE lock_row(
5625                        p_init_msg_list IN VARCHAR2,
5626                        x_return_status OUT NOCOPY VARCHAR2,
5627                        x_msg_count OUT NOCOPY NUMBER,
5628                        x_msg_data OUT NOCOPY VARCHAR2,
5629                        p_chr_rec IN chr_rec_type) IS
5630 
5631     E_Resource_Busy EXCEPTION;
5632     PRAGMA EXCEPTION_INIT(E_Resource_Busy,  - 00054);
5633     CURSOR lock_csr (p_chr_rec IN chr_rec_type) IS
5634         SELECT OBJECT_VERSION_NUMBER
5635           FROM OKC_K_HEADERS_ALL_B --mmadhavi changed to _ALL for MOAC
5636          WHERE ID = p_chr_rec.id
5637            AND OBJECT_VERSION_NUMBER = p_chr_rec.object_version_number
5638         FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
5639 
5640     CURSOR lchk_csr (p_chr_rec IN chr_rec_type) IS
5641         SELECT OBJECT_VERSION_NUMBER
5642           FROM OKC_K_HEADERS_ALL_B --mmadhavi changed to _ALL for MOAC
5643         WHERE ID = p_chr_rec.id;
5644     l_api_version CONSTANT NUMBER := 1;
5645     l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
5646     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5647     l_object_version_number OKC_K_HEADERS_B.OBJECT_VERSION_NUMBER%TYPE;
5648     lc_object_version_number OKC_K_HEADERS_B.OBJECT_VERSION_NUMBER%TYPE;
5649     l_row_notfound BOOLEAN := FALSE;
5650     lc_row_notfound BOOLEAN := FALSE;
5651     BEGIN
5652 
5653         IF (l_debug = 'Y') THEN
5654             okc_debug.Set_Indentation('OKC_CHR_PVT');
5655             okc_debug.LOG('16000: Entered lock_row', 2);
5656         END IF;
5657 
5658         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5659                                                   p_init_msg_list,
5660                                                   '_PVT',
5661                                                   x_return_status);
5662         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5663             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5664         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5665             RAISE OKC_API.G_EXCEPTION_ERROR;
5666         END IF;
5667         BEGIN
5668 
5669             IF (l_debug = 'Y') THEN
5670                 okc_debug.Set_Indentation('OKC_CHR_PVT');
5671                 okc_debug.LOG('16100: Entered lock_row', 2);
5672             END IF;
5673 
5674             OPEN lock_csr(p_chr_rec);
5675             FETCH lock_csr INTO l_object_version_number;
5676             l_row_notfound := lock_csr%NOTFOUND;
5677             CLOSE lock_csr;
5678             IF (l_debug = 'Y') THEN
5679                 okc_debug.LOG('16200: Exiting lock_row', 2);
5680                 okc_debug.Reset_Indentation;
5681             END IF;
5682 
5683 
5684         EXCEPTION
5685             WHEN E_Resource_Busy THEN
5686 
5687                 IF (l_debug = 'Y') THEN
5688                     okc_debug.LOG('16300: Exiting lock_row:E_Resource_Busy Exception', 2);
5689                     okc_debug.Reset_Indentation;
5690                 END IF;
5691 
5692                 IF (lock_csr%ISOPEN) THEN
5693                     CLOSE lock_csr;
5694                 END IF;
5695                 OKC_API.set_message(G_FND_APP, G_FORM_UNABLE_TO_RESERVE_REC);
5696                 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
5697         END;
5698 
5699         IF (l_row_notfound ) THEN
5700             OPEN lchk_csr(p_chr_rec);
5701             FETCH lchk_csr INTO lc_object_version_number;
5702             lc_row_notfound := lchk_csr%NOTFOUND;
5703             CLOSE lchk_csr;
5704         END IF;
5705         IF (lc_row_notfound) THEN
5706             OKC_API.set_message(G_APP_NAME, 'OKC_FORM_RECORD_DELETED');
5707             RAISE OKC_API.G_EXCEPTION_ERROR;
5708         ELSIF lc_object_version_number > p_chr_rec.object_version_number THEN
5709             OKC_API.set_message(G_APP_NAME, 'OKC_FORM_RECORD_CHANGED');
5710             RAISE OKC_API.G_EXCEPTION_ERROR;
5711         ELSIF lc_object_version_number <> p_chr_rec.object_version_number THEN
5712             OKC_API.set_message(G_APP_NAME, 'OKC_FORM_RECORD_CHANGED');
5713             RAISE OKC_API.G_EXCEPTION_ERROR;
5714         ELSIF lc_object_version_number =  - 1 THEN
5715             OKC_API.set_message(G_FND_APP, G_RECORD_LOGICALLY_DELETED);
5716             RAISE OKC_API.G_EXCEPTION_ERROR;
5717         END IF;
5718         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5719         IF (l_debug = 'Y') THEN
5720             okc_debug.LOG('16400: Exiting lock_row', 2);
5721             okc_debug.Reset_Indentation;
5722         END IF;
5723 
5724 
5725     EXCEPTION
5726         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5727 
5728             IF (l_debug = 'Y') THEN
5729                 okc_debug.LOG('16500: Exiting lock_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5730                 okc_debug.Reset_Indentation;
5731             END IF;
5732 
5733             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5734             (
5735              l_api_name,
5736              G_PKG_NAME,
5737              'OKC_API.G_RET_STS_ERROR',
5738              x_msg_count,
5739              x_msg_data,
5740              '_PVT'
5741              );
5742         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5743 
5744             IF (l_debug = 'Y') THEN
5745                 okc_debug.LOG('16600: Exiting lock_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
5754              x_msg_count,
5755              x_msg_data,
5756              '_PVT'
5757              );
5758         WHEN OTHERS THEN
5759 
5760             IF (l_debug = 'Y') THEN
5761                 okc_debug.LOG('16700: Exiting lock_row:OTHERS 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              'OTHERS',
5770              x_msg_count,
5771              x_msg_data,
5772              '_PVT'
5773              );
5774 
5775     END lock_row;
5776   -----------------------------------
5777   -- lock_row for:OKC_K_HEADERS_TL --
5778   -----------------------------------
5779     PROCEDURE lock_row(
5780                        p_init_msg_list IN VARCHAR2,
5781                        x_return_status OUT NOCOPY VARCHAR2,
5782                        x_msg_count OUT NOCOPY NUMBER,
5783                        x_msg_data OUT NOCOPY VARCHAR2,
5784                        p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type) IS
5785 
5786     E_Resource_Busy EXCEPTION;
5787     PRAGMA EXCEPTION_INIT(E_Resource_Busy,  - 00054);
5788     CURSOR lock_csr (p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type) IS
5789         SELECT *
5790           FROM OKC_K_HEADERS_TL
5791          WHERE ID = p_okc_k_headers_tl_rec.id
5792         FOR UPDATE NOWAIT;
5793 
5794     l_api_version CONSTANT NUMBER := 1;
5795     l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
5796     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5797     l_lock_var lock_csr%ROWTYPE;
5798     l_row_notfound BOOLEAN := FALSE;
5799     lc_row_notfound BOOLEAN := FALSE;
5800     BEGIN
5801 
5802         IF (l_debug = 'Y') THEN
5803             okc_debug.Set_Indentation('OKC_CHR_PVT');
5804             okc_debug.LOG('16800: Entered lock_row', 2);
5805         END IF;
5806 
5807         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5808                                                   p_init_msg_list,
5809                                                   '_PVT',
5810                                                   x_return_status);
5811         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5812             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5813         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5814             RAISE OKC_API.G_EXCEPTION_ERROR;
5815         END IF;
5816         BEGIN
5817 
5818             IF (l_debug = 'Y') THEN
5819                 okc_debug.Set_Indentation('OKC_CHR_PVT');
5820                 okc_debug.LOG('16900: Entered lock_row', 2);
5821             END IF;
5822 
5823             OPEN lock_csr(p_okc_k_headers_tl_rec);
5824             FETCH lock_csr INTO l_lock_var;
5825             l_row_notfound := lock_csr%NOTFOUND;
5826             CLOSE lock_csr;
5827             IF (l_debug = 'Y') THEN
5828                 okc_debug.LOG('17000: Exiting lock_row', 2);
5829                 okc_debug.Reset_Indentation;
5830             END IF;
5831 
5832 
5833         EXCEPTION
5834             WHEN E_Resource_Busy THEN
5835 
5836                 IF (l_debug = 'Y') THEN
5837                     okc_debug.LOG('17100: Exiting lock_row:E_Resource_Busy Exception', 2);
5838                     okc_debug.Reset_Indentation;
5839                 END IF;
5840 
5841                 IF (lock_csr%ISOPEN) THEN
5842                     CLOSE lock_csr;
5843                 END IF;
5844                 OKC_API.set_message(G_FND_APP, G_FORM_UNABLE_TO_RESERVE_REC);
5845                 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
5846         END;
5847 
5848         IF (l_row_notfound ) THEN
5849             OKC_API.set_message(G_APP_NAME, 'OKC_FORM_RECORD_DELETED');
5850             RAISE OKC_API.G_EXCEPTION_ERROR;
5851         END IF;
5852         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5853         IF (l_debug = 'Y') THEN
5854             okc_debug.LOG('17200: Exiting lock_row', 2);
5855             okc_debug.Reset_Indentation;
5856         END IF;
5857 
5858 
5859     EXCEPTION
5860         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5861 
5862             IF (l_debug = 'Y') THEN
5863                 okc_debug.LOG('17300: Exiting lock_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5864                 okc_debug.Reset_Indentation;
5865             END IF;
5866 
5867             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5868             (
5869              l_api_name,
5870              G_PKG_NAME,
5871              'OKC_API.G_RET_STS_ERROR',
5872              x_msg_count,
5873              x_msg_data,
5874              '_PVT'
5875              );
5876         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5877 
5878             IF (l_debug = 'Y') THEN
5879                 okc_debug.LOG('17400: Exiting lock_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
5888              x_msg_count,
5889              x_msg_data,
5890              '_PVT'
5891              );
5892         WHEN OTHERS THEN
5893 
5894             IF (l_debug = 'Y') THEN
5895                 okc_debug.LOG('17500: Exiting lock_row:OTHERS 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              'OTHERS',
5904              x_msg_count,
5905              x_msg_data,
5906              '_PVT'
5907              );
5908 
5909     END lock_row;
5910   ----------------------------------
5911   -- lock_row for:OKC_K_HEADERS_V --
5912   ----------------------------------
5913     PROCEDURE lock_row(
5914                        p_api_version IN NUMBER,
5915                        p_init_msg_list IN VARCHAR2,
5916                        x_return_status OUT NOCOPY VARCHAR2,
5917                        x_msg_count OUT NOCOPY NUMBER,
5918                        x_msg_data OUT NOCOPY VARCHAR2,
5919                        p_chrv_rec IN chrv_rec_type) IS
5920 
5921     l_api_version CONSTANT NUMBER := 1;
5922     l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
5923     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5924     l_chr_rec chr_rec_type;
5925     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
5926     BEGIN
5927 
5928         IF (l_debug = 'Y') THEN
5929             okc_debug.Set_Indentation('OKC_CHR_PVT');
5930             okc_debug.LOG('17600: Entered lock_row', 2);
5931         END IF;
5932 
5933         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5934                                                   G_PKG_NAME,
5935                                                   p_init_msg_list,
5936                                                   l_api_version,
5937                                                   p_api_version,
5938                                                   '_PVT',
5939                                                   x_return_status);
5940         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5941             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5942         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5943             RAISE OKC_API.G_EXCEPTION_ERROR;
5944         END IF;
5945     --------------------------------------
5946     -- Move VIEW record to "Child" records
5947     --------------------------------------
5948         migrate(p_chrv_rec, l_chr_rec);
5949         migrate(p_chrv_rec, l_okc_k_headers_tl_rec);
5950     --------------------------------------------
5951     -- Call the LOCK_ROW for each child record
5952     --------------------------------------------
5953         lock_row(
5954                  p_init_msg_list,
5955                  x_return_status,
5956                  x_msg_count,
5957                  x_msg_data,
5958                  l_chr_rec
5959                  );
5960         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5961             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5962         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5963             RAISE OKC_API.G_EXCEPTION_ERROR;
5964         END IF;
5965         lock_row(
5966                  p_init_msg_list,
5967                  x_return_status,
5968                  x_msg_count,
5969                  x_msg_data,
5970                  l_okc_k_headers_tl_rec
5971                  );
5972         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5973             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5974         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5975             RAISE OKC_API.G_EXCEPTION_ERROR;
5976         END IF;
5977         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5978         IF (l_debug = 'Y') THEN
5979             okc_debug.LOG('17700: Exiting lock_row', 2);
5980             okc_debug.Reset_Indentation;
5981         END IF;
5982 
5983 
5984     EXCEPTION
5985         WHEN OKC_API.G_EXCEPTION_ERROR THEN
5986 
5987             IF (l_debug = 'Y') THEN
5988                 okc_debug.LOG('17800: Exiting lock_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
5989                 okc_debug.Reset_Indentation;
5990             END IF;
5991 
5992             x_return_status := OKC_API.HANDLE_EXCEPTIONS
5993             (
5994              l_api_name,
5995              G_PKG_NAME,
5996              'OKC_API.G_RET_STS_ERROR',
5997              x_msg_count,
5998              x_msg_data,
5999              '_PVT'
6000              );
6001         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6002 
6003             IF (l_debug = 'Y') THEN
6004                 okc_debug.LOG('17900: Exiting lock_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
6013              x_msg_count,
6014              x_msg_data,
6015              '_PVT'
6016              );
6017         WHEN OTHERS THEN
6018 
6019             IF (l_debug = 'Y') THEN
6020                 okc_debug.LOG('18000: Exiting lock_row:OTHERS 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              'OTHERS',
6029              x_msg_count,
6030              x_msg_data,
6031              '_PVT'
6032              );
6033 
6034     END lock_row;
6035   --------------------------------------
6036   -- PL/SQL TBL lock_row for:CHRV_TBL --
6037   --------------------------------------
6038     PROCEDURE lock_row(
6039                        p_api_version IN NUMBER,
6040                        p_init_msg_list IN VARCHAR2,
6041                        x_return_status OUT NOCOPY VARCHAR2,
6042                        x_msg_count OUT NOCOPY NUMBER,
6043                        x_msg_data OUT NOCOPY VARCHAR2,
6044                        p_chrv_tbl IN chrv_tbl_type) IS
6045 
6046     l_api_version CONSTANT NUMBER := 1;
6047     l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
6048     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6049     l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6050     i NUMBER := 0;
6051     BEGIN
6052 
6053         IF (l_debug = 'Y') THEN
6054             okc_debug.Set_Indentation('OKC_CHR_PVT');
6055             okc_debug.LOG('18100: Entered lock_row', 2);
6056         END IF;
6057 
6058         OKC_API.init_msg_list(p_init_msg_list);
6059     -- Make sure PL/SQL table has records in it before passing
6060         IF (p_chrv_tbl.COUNT > 0) THEN
6061             i := p_chrv_tbl.FIRST;
6062             LOOP
6063                 lock_row (
6064                           p_api_version => p_api_version,
6065                           p_init_msg_list => OKC_API.G_FALSE,
6066                           x_return_status => x_return_status,
6067                           x_msg_count => x_msg_count,
6068                           x_msg_data => x_msg_data,
6069                           p_chrv_rec => p_chrv_tbl(i));
6070 
6071 		-- store the highest degree of error
6072                 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
6073                     IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
6074                         l_overall_status := x_return_status;
6075                     END IF;
6076                 END IF;
6077 
6078                 EXIT WHEN (i = p_chrv_tbl.LAST);
6079                 i := p_chrv_tbl.NEXT(i);
6080             END LOOP;
6081 	 -- return overall status
6082             x_return_status := l_overall_status;
6083         END IF;
6084         IF (l_debug = 'Y') THEN
6085             okc_debug.LOG('18200: Exiting lock_row', 2);
6086             okc_debug.Reset_Indentation;
6087         END IF;
6088 
6089 
6090     EXCEPTION
6091         WHEN OKC_API.G_EXCEPTION_ERROR THEN
6092 
6093             IF (l_debug = 'Y') THEN
6094                 okc_debug.LOG('18300: Exiting lock_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
6095                 okc_debug.Reset_Indentation;
6096             END IF;
6097 
6098             x_return_status := OKC_API.HANDLE_EXCEPTIONS
6099             (
6100              l_api_name,
6101              G_PKG_NAME,
6102              'OKC_API.G_RET_STS_ERROR',
6103              x_msg_count,
6104              x_msg_data,
6105              '_PVT'
6106              );
6107         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6108 
6109             IF (l_debug = 'Y') THEN
6110                 okc_debug.LOG('18400: Exiting lock_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
6119              x_msg_count,
6120              x_msg_data,
6121              '_PVT'
6122              );
6123         WHEN OTHERS THEN
6124 
6125             IF (l_debug = 'Y') THEN
6126                 okc_debug.LOG('18500: Exiting lock_row:OTHERS 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              'OTHERS',
6135              x_msg_count,
6136              x_msg_data,
6137              '_PVT'
6138              );
6139 
6140     END lock_row;
6141 
6142   ---------------------------------------------------------------------------
6143   -- PROCEDURE update_row
6144   ---------------------------------------------------------------------------
6145   ------------------------------------
6146   -- update_row for:OKC_K_HEADERS_ALL_B --
6147   ------------------------------------
6148     PROCEDURE update_row(
6149                          p_init_msg_list IN VARCHAR2,
6150                          x_return_status OUT NOCOPY VARCHAR2,
6151                          x_msg_count OUT NOCOPY NUMBER,
6152                          x_msg_data OUT NOCOPY VARCHAR2,
6153                          p_restricted_update IN VARCHAR2,
6154                          p_chr_rec IN chr_rec_type,
6155                          x_chr_rec OUT NOCOPY chr_rec_type) IS
6156 
6157     l_api_version CONSTANT NUMBER := 1;
6158     l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
6159     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6160     l_chr_rec chr_rec_type := p_chr_rec;
6161     l_def_chr_rec chr_rec_type;
6162     l_row_notfound BOOLEAN := TRUE;
6163     ----------------------------------
6164     -- FUNCTION populate_new_record --
6165     ----------------------------------
6166     FUNCTION populate_new_record (
6167                                   p_chr_rec IN chr_rec_type,
6168                                   x_chr_rec OUT NOCOPY chr_rec_type
6169                                   ) RETURN VARCHAR2 IS
6170     l_chr_rec chr_rec_type;
6171     l_row_notfound BOOLEAN := TRUE;
6172     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6173     BEGIN
6174 
6175         IF (l_debug = 'Y') THEN
6176             okc_debug.Set_Indentation('OKC_CHR_PVT');
6177             okc_debug.LOG('18600: Entered populate_new_record', 2);
6178         END IF;
6179 
6180         x_chr_rec := p_chr_rec;
6181       -- Get current database values
6182         l_chr_rec := get_rec(p_chr_rec, l_row_notfound);
6183         IF (l_row_notfound) THEN
6184             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
6185         END IF;
6186         IF (x_chr_rec.id = OKC_API.G_MISS_NUM)
6187             THEN
6188             x_chr_rec.id := l_chr_rec.id;
6189         END IF;
6190         IF (x_chr_rec.contract_number = OKC_API.G_MISS_CHAR)
6191             THEN
6192             x_chr_rec.contract_number := l_chr_rec.contract_number;
6193         END IF;
6194         IF (x_chr_rec.authoring_org_id = OKC_API.G_MISS_NUM)
6195             THEN
6196             x_chr_rec.authoring_org_id := l_chr_rec.authoring_org_id;
6197         END IF;
6198       --mmadhavi added for MOAC
6199 
6200         IF (x_chr_rec.org_id = OKC_API.G_MISS_NUM)
6201             THEN
6202             x_chr_rec.org_id := l_chr_rec.org_id;
6203         END IF;
6204 
6205       --mmadhavi end MOAC
6206         IF (x_chr_rec.contract_number_modifier = OKC_API.G_MISS_CHAR)
6207             THEN
6208             x_chr_rec.contract_number_modifier := l_chr_rec.contract_number_modifier;
6209         END IF;
6210         IF (x_chr_rec.chr_id_response = OKC_API.G_MISS_NUM)
6211             THEN
6212             x_chr_rec.chr_id_response := l_chr_rec.chr_id_response;
6213         END IF;
6214         IF (x_chr_rec.chr_id_award = OKC_API.G_MISS_NUM)
6215             THEN
6216             x_chr_rec.chr_id_award := l_chr_rec.chr_id_award;
6217         END IF;
6218         IF (x_chr_rec.INV_ORGANIZATION_ID = OKC_API.G_MISS_NUM)
6219             THEN
6220             x_chr_rec.INV_ORGANIZATION_ID := l_chr_rec.INV_ORGANIZATION_ID;
6221         END IF;
6222         IF (x_chr_rec.sts_code = OKC_API.G_MISS_CHAR)
6223             THEN
6224             x_chr_rec.sts_code := l_chr_rec.sts_code;
6225         END IF;
6226         IF (x_chr_rec.qcl_id = OKC_API.G_MISS_NUM)
6227             THEN
6228             x_chr_rec.qcl_id := l_chr_rec.qcl_id;
6229         END IF;
6230         IF (x_chr_rec.scs_code = OKC_API.G_MISS_CHAR)
6231             THEN
6232             x_chr_rec.scs_code := l_chr_rec.scs_code;
6233         END IF;
6234         IF (x_chr_rec.trn_code = OKC_API.G_MISS_CHAR)
6235             THEN
6236             x_chr_rec.trn_code := l_chr_rec.trn_code;
6237         END IF;
6238         IF (x_chr_rec.currency_code = OKC_API.G_MISS_CHAR)
6239             THEN
6240             x_chr_rec.currency_code := l_chr_rec.currency_code;
6241         END IF;
6242         IF (x_chr_rec.archived_yn = OKC_API.G_MISS_CHAR)
6243             THEN
6244             x_chr_rec.archived_yn := l_chr_rec.archived_yn;
6245         END IF;
6246         IF (x_chr_rec.deleted_yn = OKC_API.G_MISS_CHAR)
6247             THEN
6248             x_chr_rec.deleted_yn := l_chr_rec.deleted_yn;
6249         END IF;
6250         IF (x_chr_rec.template_yn = OKC_API.G_MISS_CHAR)
6251             THEN
6252             x_chr_rec.template_yn := l_chr_rec.template_yn;
6253         END IF;
6254         IF (x_chr_rec.chr_type = OKC_API.G_MISS_CHAR)
6255             THEN
6256             x_chr_rec.chr_type := l_chr_rec.chr_type;
6257         END IF;
6258         IF (x_chr_rec.object_version_number = OKC_API.G_MISS_NUM)
6259             THEN
6260             x_chr_rec.object_version_number := l_chr_rec.object_version_number;
6261         END IF;
6262         IF (x_chr_rec.created_by = OKC_API.G_MISS_NUM)
6263             THEN
6264             x_chr_rec.created_by := l_chr_rec.created_by;
6265         END IF;
6266         IF (x_chr_rec.creation_date = OKC_API.G_MISS_DATE)
6267             THEN
6268             x_chr_rec.creation_date := l_chr_rec.creation_date;
6269         END IF;
6270         IF (x_chr_rec.last_updated_by = OKC_API.G_MISS_NUM)
6271             THEN
6272             x_chr_rec.last_updated_by := l_chr_rec.last_updated_by;
6273         END IF;
6274         IF (x_chr_rec.last_update_date = OKC_API.G_MISS_DATE)
6275             THEN
6276             x_chr_rec.last_update_date := l_chr_rec.last_update_date;
6277         END IF;
6278         IF (x_chr_rec.cust_po_number_req_yn = OKC_API.G_MISS_CHAR)
6279             THEN
6280             x_chr_rec.cust_po_number_req_yn := l_chr_rec.cust_po_number_req_yn;
6281         END IF;
6282         IF (x_chr_rec.pre_pay_req_yn = OKC_API.G_MISS_CHAR)
6283             THEN
6284             x_chr_rec.pre_pay_req_yn := l_chr_rec.pre_pay_req_yn;
6285         END IF;
6286         IF (x_chr_rec.cust_po_number = OKC_API.G_MISS_CHAR)
6287             THEN
6288             x_chr_rec.cust_po_number := l_chr_rec.cust_po_number;
6289         END IF;
6290         IF (x_chr_rec.dpas_rating = OKC_API.G_MISS_CHAR)
6291             THEN
6292             x_chr_rec.dpas_rating := l_chr_rec.dpas_rating;
6293         END IF;
6294         IF (x_chr_rec.template_used = OKC_API.G_MISS_CHAR)
6295             THEN
6296             x_chr_rec.template_used := l_chr_rec.template_used;
6297         END IF;
6298         IF (x_chr_rec.date_approved = OKC_API.G_MISS_DATE)
6299             THEN
6300             x_chr_rec.date_approved := l_chr_rec.date_approved;
6301         END IF;
6302         IF (x_chr_rec.datetime_cancelled = OKC_API.G_MISS_DATE)
6303             THEN
6304             x_chr_rec.datetime_cancelled := l_chr_rec.datetime_cancelled;
6305         END IF;
6306         IF (x_chr_rec.auto_renew_days = OKC_API.G_MISS_NUM)
6307             THEN
6308             x_chr_rec.auto_renew_days := l_chr_rec.auto_renew_days;
6309         END IF;
6310         IF (x_chr_rec.date_issued = OKC_API.G_MISS_DATE)
6311             THEN
6312             x_chr_rec.date_issued := l_chr_rec.date_issued;
6313         END IF;
6314         IF (x_chr_rec.datetime_responded = OKC_API.G_MISS_DATE)
6315             THEN
6316             x_chr_rec.datetime_responded := l_chr_rec.datetime_responded;
6317         END IF;
6318         IF (x_chr_rec.rfp_type = OKC_API.G_MISS_CHAR)
6319             THEN
6320             x_chr_rec.rfp_type := l_chr_rec.rfp_type;
6321         END IF;
6322         IF (x_chr_rec.keep_on_mail_list = OKC_API.G_MISS_CHAR)
6323             THEN
6324             x_chr_rec.keep_on_mail_list := l_chr_rec.keep_on_mail_list;
6325         END IF;
6326         IF (x_chr_rec.set_aside_percent = OKC_API.G_MISS_NUM)
6327             THEN
6328             x_chr_rec.set_aside_percent := l_chr_rec.set_aside_percent;
6329         END IF;
6330         IF (x_chr_rec.response_copies_req = OKC_API.G_MISS_NUM)
6331             THEN
6332             x_chr_rec.response_copies_req := l_chr_rec.response_copies_req;
6333         END IF;
6334         IF (x_chr_rec.date_close_projected = OKC_API.G_MISS_DATE)
6335             THEN
6336             x_chr_rec.date_close_projected := l_chr_rec.date_close_projected;
6337         END IF;
6338         IF (x_chr_rec.datetime_proposed = OKC_API.G_MISS_DATE)
6339             THEN
6340             x_chr_rec.datetime_proposed := l_chr_rec.datetime_proposed;
6341         END IF;
6342         IF (x_chr_rec.date_signed = OKC_API.G_MISS_DATE)
6343             THEN
6344             x_chr_rec.date_signed := l_chr_rec.date_signed;
6345         END IF;
6346         IF (x_chr_rec.date_terminated = OKC_API.G_MISS_DATE)
6347             THEN
6348             x_chr_rec.date_terminated := l_chr_rec.date_terminated;
6349         END IF;
6350         IF (x_chr_rec.date_renewed = OKC_API.G_MISS_DATE)
6351             THEN
6352             x_chr_rec.date_renewed := l_chr_rec.date_renewed;
6353         END IF;
6354         IF (x_chr_rec.start_date = OKC_API.G_MISS_DATE)
6355             THEN
6356             x_chr_rec.start_date := l_chr_rec.start_date;
6357         END IF;
6358         IF (x_chr_rec.end_date = OKC_API.G_MISS_DATE)
6359             THEN
6360             x_chr_rec.end_date := l_chr_rec.end_date;
6361         END IF;
6362         IF (x_chr_rec.buy_or_sell = OKC_API.G_MISS_CHAR)
6363             THEN
6364             x_chr_rec.buy_or_sell := l_chr_rec.buy_or_sell;
6365         END IF;
6366         IF (x_chr_rec.issue_or_receive = OKC_API.G_MISS_CHAR)
6367             THEN
6368             x_chr_rec.issue_or_receive := l_chr_rec.issue_or_receive;
6369         END IF;
6370         IF (x_chr_rec.estimated_amount = OKC_API.G_MISS_NUM)
6371             THEN
6372             x_chr_rec.estimated_amount := l_chr_rec.estimated_amount;
6373         END IF;
6374         IF (x_chr_rec.estimated_amount_renewed = OKC_API.G_MISS_NUM)
6375             THEN
6376             x_chr_rec.estimated_amount_renewed := l_chr_rec.estimated_amount_renewed;
6377         END IF;
6378         IF (x_chr_rec.currency_code_renewed = OKC_API.G_MISS_CHAR)
6379             THEN
6380             x_chr_rec.currency_code_renewed := l_chr_rec.currency_code_renewed;
6381         END IF;
6382         IF (x_chr_rec.last_update_login = OKC_API.G_MISS_NUM)
6383             THEN
6384             x_chr_rec.last_update_login := l_chr_rec.last_update_login;
6385         END IF;
6386         IF (x_chr_rec.upg_orig_system_ref = OKC_API.G_MISS_CHAR)
6387             THEN
6388             x_chr_rec.upg_orig_system_ref := l_chr_rec.upg_orig_system_ref;
6389         END IF;
6390         IF (x_chr_rec.upg_orig_system_ref_id = OKC_API.G_MISS_NUM)
6391             THEN
6392             x_chr_rec.upg_orig_system_ref_id := l_chr_rec.upg_orig_system_ref_id;
6393         END IF;
6394         IF (x_chr_rec.application_id = OKC_API.G_MISS_NUM)
6395             THEN
6396             x_chr_rec.application_id := l_chr_rec.application_id;
6397         END IF;
6398         IF (x_chr_rec.orig_system_source_code = OKC_API.G_MISS_CHAR )
6399             THEN
6400             x_chr_rec.orig_system_source_code := l_chr_rec.orig_system_source_code ;
6401         END IF;
6402         IF (x_chr_rec.orig_system_id1 = OKC_API.G_MISS_NUM )
6403             THEN
6404             x_chr_rec.orig_system_id1 := l_chr_rec.orig_system_id1 ;
6405         END IF ;
6406         IF (x_chr_rec.orig_system_reference1 = OKC_API.G_MISS_CHAR )
6407             THEN
6408             x_chr_rec.orig_system_reference1 := l_chr_rec.orig_system_reference1 ;
6409         END IF;
6410         IF (x_chr_rec.program_id = OKC_API.G_MISS_NUM)
6411             THEN
6412             x_chr_rec.program_id := l_chr_rec.program_id;
6413         END IF;
6414         IF (x_chr_rec.request_id = OKC_API.G_MISS_NUM)
6415             THEN
6416             x_chr_rec.request_id := l_chr_rec.request_id;
6417         END IF;
6418         IF (x_chr_rec.program_update_date = OKC_API.G_MISS_DATE)
6419             THEN
6420             x_chr_rec.program_update_date := l_chr_rec.program_update_date;
6421         END IF;
6422         IF (x_chr_rec.program_application_id = OKC_API.G_MISS_NUM)
6423             THEN
6424             x_chr_rec.program_application_id := l_chr_rec.program_application_id;
6425         END IF;
6426         IF (x_chr_rec.price_list_id = OKC_API.G_MISS_NUM)
6427             THEN
6428             x_chr_rec.price_list_id := l_chr_rec.price_list_id;
6429         END IF;
6430         IF (x_chr_rec.pricing_date = OKC_API.G_MISS_DATE)
6431             THEN
6432             x_chr_rec.pricing_date := l_chr_rec.pricing_date ;
6433         END IF;
6434         IF (x_chr_rec.sign_by_date = OKC_API.G_MISS_DATE)
6435             THEN
6436             x_chr_rec.sign_by_date := l_chr_rec.sign_by_date;
6437         END IF;
6438         IF (x_chr_rec.total_line_list_price = OKC_API.G_MISS_NUM)
6439             THEN
6440             x_chr_rec.total_line_list_price := l_chr_rec.total_line_list_price;
6441         END IF;
6442         IF (x_chr_rec.user_estimated_amount = OKC_API.G_MISS_NUM) THEN
6443             x_chr_rec.user_estimated_amount := l_chr_rec.user_estimated_amount;
6444         END IF;
6445 
6446         IF (x_chr_rec.governing_contract_yn = OKC_API.G_MISS_CHAR) THEN
6447             x_chr_rec.governing_contract_yn := l_chr_rec.governing_contract_yn;
6448         END IF;
6449         IF (x_chr_rec.attribute_category = OKC_API.G_MISS_CHAR)
6450             THEN
6451             x_chr_rec.attribute_category := l_chr_rec.attribute_category;
6452         END IF;
6453         IF (x_chr_rec.attribute1 = OKC_API.G_MISS_CHAR)
6454             THEN
6455             x_chr_rec.attribute1 := l_chr_rec.attribute1;
6456         END IF;
6457         IF (x_chr_rec.attribute2 = OKC_API.G_MISS_CHAR)
6458             THEN
6459             x_chr_rec.attribute2 := l_chr_rec.attribute2;
6460         END IF;
6461         IF (x_chr_rec.attribute3 = OKC_API.G_MISS_CHAR)
6462             THEN
6463             x_chr_rec.attribute3 := l_chr_rec.attribute3;
6464         END IF;
6465         IF (x_chr_rec.attribute4 = OKC_API.G_MISS_CHAR)
6466             THEN
6467             x_chr_rec.attribute4 := l_chr_rec.attribute4;
6468         END IF;
6469         IF (x_chr_rec.attribute5 = OKC_API.G_MISS_CHAR)
6470             THEN
6471             x_chr_rec.attribute5 := l_chr_rec.attribute5;
6472         END IF;
6473         IF (x_chr_rec.attribute6 = OKC_API.G_MISS_CHAR)
6474             THEN
6475             x_chr_rec.attribute6 := l_chr_rec.attribute6;
6476         END IF;
6477         IF (x_chr_rec.attribute7 = OKC_API.G_MISS_CHAR)
6478             THEN
6479             x_chr_rec.attribute7 := l_chr_rec.attribute7;
6480         END IF;
6481         IF (x_chr_rec.attribute8 = OKC_API.G_MISS_CHAR)
6482             THEN
6483             x_chr_rec.attribute8 := l_chr_rec.attribute8;
6484         END IF;
6485         IF (x_chr_rec.attribute9 = OKC_API.G_MISS_CHAR)
6486             THEN
6487             x_chr_rec.attribute9 := l_chr_rec.attribute9;
6488         END IF;
6489         IF (x_chr_rec.attribute10 = OKC_API.G_MISS_CHAR)
6490             THEN
6491             x_chr_rec.attribute10 := l_chr_rec.attribute10;
6492         END IF;
6493         IF (x_chr_rec.attribute11 = OKC_API.G_MISS_CHAR)
6494             THEN
6495             x_chr_rec.attribute11 := l_chr_rec.attribute11;
6496         END IF;
6497         IF (x_chr_rec.attribute12 = OKC_API.G_MISS_CHAR)
6498             THEN
6499             x_chr_rec.attribute12 := l_chr_rec.attribute12;
6500         END IF;
6501         IF (x_chr_rec.attribute13 = OKC_API.G_MISS_CHAR)
6502             THEN
6503             x_chr_rec.attribute13 := l_chr_rec.attribute13;
6504         END IF;
6505         IF (x_chr_rec.attribute14 = OKC_API.G_MISS_CHAR)
6506             THEN
6507             x_chr_rec.attribute14 := l_chr_rec.attribute14;
6508         END IF;
6509         IF (x_chr_rec.attribute15 = OKC_API.G_MISS_CHAR)
6510             THEN
6511             x_chr_rec.attribute15 := l_chr_rec.attribute15;
6512         END IF;
6513       -- new  columns to replace rules
6514         IF (x_chr_rec.conversion_type = OKC_API.G_MISS_CHAR) THEN
6515             x_chr_rec.conversion_type := l_chr_rec.conversion_type;
6516         END IF;
6517         IF (x_chr_rec.conversion_rate = OKC_API.G_MISS_NUM) THEN
6518             x_chr_rec.conversion_rate := l_chr_rec.conversion_rate;
6519         END IF;
6520         IF (x_chr_rec.conversion_rate_date = OKC_API.G_MISS_DATE) THEN
6521             x_chr_rec.conversion_rate_date := l_chr_rec.conversion_rate_date;
6522         END IF;
6523         IF (x_chr_rec.conversion_euro_rate = OKC_API.G_MISS_NUM) THEN
6524             x_chr_rec.conversion_euro_rate := l_chr_rec.conversion_euro_rate;
6525         END IF;
6526         IF (x_chr_rec.cust_acct_id = OKC_API.G_MISS_NUM) THEN
6527             x_chr_rec.cust_acct_id := l_chr_rec.cust_acct_id;
6528         END IF;
6529         IF (x_chr_rec.bill_to_site_use_id = OKC_API.G_MISS_NUM) THEN
6530             x_chr_rec.bill_to_site_use_id := l_chr_rec.bill_to_site_use_id;
6531         END IF;
6532         IF (x_chr_rec.inv_rule_id = OKC_API.G_MISS_NUM) THEN
6533             x_chr_rec.inv_rule_id := l_chr_rec.inv_rule_id;
6534         END IF;
6535         IF (x_chr_rec.renewal_type_code = OKC_API.G_MISS_CHAR) THEN
6536             x_chr_rec.renewal_type_code := l_chr_rec.renewal_type_code;
6537         END IF;
6538         IF (x_chr_rec.renewal_notify_to = OKC_API.G_MISS_NUM) THEN
6539             x_chr_rec.renewal_notify_to := l_chr_rec.renewal_notify_to;
6540         END IF;
6541         IF (x_chr_rec.renewal_end_date = OKC_API.G_MISS_DATE) THEN
6542             x_chr_rec.renewal_end_date := l_chr_rec.renewal_end_date;
6543         END IF;
6544         IF (x_chr_rec.ship_to_site_use_id = OKC_API.G_MISS_NUM) THEN
6545             x_chr_rec.ship_to_site_use_id := l_chr_rec.ship_to_site_use_id;
6546         END IF;
6547         IF (x_chr_rec.payment_term_id = OKC_API.G_MISS_NUM) THEN
6548             x_chr_rec.payment_term_id := l_chr_rec.payment_term_id;
6549         END IF;
6550 
6551 -- R12 Data Model Changes 4485150 Start
6552         IF (x_chr_rec.approval_type = OKC_API.G_MISS_CHAR) THEN
6553             x_chr_rec.approval_type := l_chr_rec.approval_type;
6554         END IF;
6555         IF (x_chr_rec.term_cancel_source = OKC_API.G_MISS_CHAR) THEN
6556             x_chr_rec.term_cancel_source := l_chr_rec.term_cancel_source;
6557         END IF;
6558         IF (x_chr_rec.payment_instruction_type = OKC_API.G_MISS_CHAR) THEN
6559             x_chr_rec.payment_instruction_type := l_chr_rec.payment_instruction_type;
6560         END IF;
6561 	   -- LLC
6562 	   IF (x_chr_rec.cancelled_amount = OKC_API.G_MISS_NUM) THEN
6563 	   	  x_chr_rec.cancelled_amount := l_chr_rec.cancelled_amount;
6564 	   END IF;
6565 -- R12 Data Model Changes 4485150 End
6566         RETURN(l_return_status);
6567 
6568     END populate_new_record;
6569     ----------------------------------------
6570     -- Set_Attributes for:OKC_K_HEADERS_ALL_B --
6571     ----------------------------------------
6572     FUNCTION Set_Attributes (
6573                              p_chr_rec IN chr_rec_type,
6574                              x_chr_rec OUT NOCOPY chr_rec_type
6575                              ) RETURN VARCHAR2 IS
6576     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6577     BEGIN
6578 
6579         IF (l_debug = 'Y') THEN
6580             okc_debug.Set_Indentation('OKC_CHR_PVT');
6581             okc_debug.LOG('18700: Entered Set_Attributes', 2);
6582         END IF;
6583 
6584         x_chr_rec := p_chr_rec;
6585         RETURN(l_return_status);
6586 
6587     END Set_Attributes;
6588     BEGIN
6589 
6590         IF (l_debug = 'Y') THEN
6591             okc_debug.Set_Indentation('OKC_CHR_PVT');
6592             okc_debug.LOG('18800: Entered update_row', 2);
6593         END IF;
6594 
6595         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6596                                                   p_init_msg_list,
6597                                                   '_PVT',
6598                                                   x_return_status);
6599         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6600             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6601         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6602             RAISE OKC_API.G_EXCEPTION_ERROR;
6603         END IF;
6604     --- Setting item attributes
6605         l_return_status := Set_Attributes(
6606                                           p_chr_rec,  -- IN
6607                                           l_chr_rec); -- OUT
6608     --- If any errors happen abort API
6609         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6610             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6611         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6612             RAISE OKC_API.G_EXCEPTION_ERROR;
6613         END IF;
6614         l_return_status := populate_new_record(l_chr_rec, l_def_chr_rec);
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 
6621         UPDATE  OKC_K_HEADERS_ALL_B --mmadhavi changed to _ALL for MOAC
6622         SET CONTRACT_NUMBER = l_def_chr_rec.contract_number,
6623         --AUTHORING_ORG_ID = l_def_chr_rec.authoring_org_id,
6624           CONTRACT_NUMBER_MODIFIER = l_def_chr_rec.contract_number_modifier,
6625           CHR_ID_RESPONSE = l_def_chr_rec.chr_id_response,
6626           CHR_ID_AWARD = l_def_chr_rec.chr_id_award,
6627         --INV_ORGANIZATION_ID = l_def_chr_rec.INV_ORGANIZATION_ID,
6628           STS_CODE = l_def_chr_rec.sts_code,
6629           QCL_ID = l_def_chr_rec.qcl_id,
6630         --SCS_CODE = l_def_chr_rec.scs_code,
6631           TRN_CODE = l_def_chr_rec.trn_code,
6632           CURRENCY_CODE = l_def_chr_rec.currency_code,
6633           ARCHIVED_YN = l_def_chr_rec.archived_yn,
6634           DELETED_YN = l_def_chr_rec.deleted_yn,
6635           TEMPLATE_YN = l_def_chr_rec.template_yn,
6636         --CHR_TYPE = l_def_chr_rec.chr_type,
6637           OBJECT_VERSION_NUMBER = l_def_chr_rec.object_version_number,
6638         --CREATED_BY = l_def_chr_rec.created_by,
6639         --CREATION_DATE = l_def_chr_rec.creation_date,
6640           LAST_UPDATED_BY = l_def_chr_rec.last_updated_by,
6641           LAST_UPDATE_DATE = l_def_chr_rec.last_update_date,
6642           CUST_PO_NUMBER_REQ_YN = l_def_chr_rec.cust_po_number_req_yn,
6643           PRE_PAY_REQ_YN = l_def_chr_rec.pre_pay_req_yn,
6644           CUST_PO_NUMBER = l_def_chr_rec.cust_po_number,
6645           DPAS_RATING = l_def_chr_rec.dpas_rating,
6646           TEMPLATE_USED = l_def_chr_rec.template_used,
6647           DATE_APPROVED = l_def_chr_rec.date_approved,
6648           DATETIME_CANCELLED = l_def_chr_rec.datetime_cancelled,
6649           AUTO_RENEW_DAYS = l_def_chr_rec.auto_renew_days,
6650           DATE_ISSUED = l_def_chr_rec.date_issued,
6651           DATETIME_RESPONDED = l_def_chr_rec.datetime_responded,
6652           RFP_TYPE = l_def_chr_rec.rfp_type,
6653           KEEP_ON_MAIL_LIST = l_def_chr_rec.keep_on_mail_list,
6654           SET_ASIDE_PERCENT = l_def_chr_rec.set_aside_percent,
6655           RESPONSE_COPIES_REQ = l_def_chr_rec.response_copies_req,
6656           DATE_CLOSE_PROJECTED = l_def_chr_rec.date_close_projected,
6657           DATETIME_PROPOSED = l_def_chr_rec.datetime_proposed,
6658           DATE_SIGNED = l_def_chr_rec.date_signed,
6659           DATE_TERMINATED = l_def_chr_rec.date_terminated,
6660           DATE_RENEWED = l_def_chr_rec.date_renewed,
6661           START_DATE = l_def_chr_rec.start_date,
6662           END_DATE = l_def_chr_rec.end_date,
6663           BUY_OR_SELL = l_def_chr_rec.buy_or_sell,
6664           ISSUE_OR_RECEIVE = l_def_chr_rec.issue_or_receive,
6665          ESTIMATED_AMOUNT = l_def_chr_rec.estimated_amount,
6666           ESTIMATED_AMOUNT_RENEWED = l_def_chr_rec.estimated_amount_renewed,
6667           CURRENCY_CODE_RENEWED = l_def_chr_rec.currency_code_renewed,
6668           LAST_UPDATE_LOGIN = l_def_chr_rec.last_update_login,
6669           UPG_ORIG_SYSTEM_REF = l_def_chr_rec.upg_orig_system_ref,
6670           UPG_ORIG_SYSTEM_REF_ID = l_def_chr_rec.upg_orig_system_ref_id,
6671 --------APPLICATION_ID = l_def_chr_rec.application_id,
6672           ORIG_SYSTEM_SOURCE_CODE = l_def_chr_rec.orig_system_source_code,
6673           ORIG_SYSTEM_ID1 = l_def_chr_rec.orig_system_id1,
6674           ORIG_SYSTEM_REFERENCE1 = l_def_chr_rec.orig_system_reference1,
6675           PROGRAM_ID = NVL(decode(FND_GLOBAL.CONC_PROGRAM_ID, - 1, NULL, FND_GLOBAL.CONC_PROGRAM_ID), l_def_chr_rec.program_id),
6676           REQUEST_ID = NVL(decode(FND_GLOBAL.CONC_REQUEST_ID, - 1, NULL, FND_GLOBAL.CONC_REQUEST_ID), l_def_chr_rec.request_id),
6677           PROGRAM_UPDATE_DATE = decode(decode(FND_GLOBAL.CONC_REQUEST_ID, - 1, NULL, SYSDATE), NULL, l_def_chr_rec.program_update_date, SYSDATE),
6678           PROGRAM_APPLICATION_ID = NVL(decode(FND_GLOBAL.PROG_APPL_ID, - 1, NULL, FND_GLOBAL.PROG_APPL_ID), l_def_chr_rec.program_application_id),
6679           PRICE_LIST_ID = l_def_chr_rec.price_list_id,
6680           PRICING_DATE = l_def_chr_rec.pricing_date,
6681           SIGN_BY_DATE = l_def_chr_rec.sign_by_date,
6682           TOTAL_LINE_LIST_PRICE = l_def_chr_rec.total_line_list_price,
6683          USER_ESTIMATED_AMOUNT = l_def_chr_rec.user_estimated_amount,
6684          GOVERNING_CONTRACT_YN = l_def_chr_rec.governing_contract_yn,
6685           ATTRIBUTE_CATEGORY = l_def_chr_rec.attribute_category,
6686           ATTRIBUTE1 = l_def_chr_rec.attribute1,
6687           ATTRIBUTE2 = l_def_chr_rec.attribute2,
6688           ATTRIBUTE3 = l_def_chr_rec.attribute3,
6689           ATTRIBUTE4 = l_def_chr_rec.attribute4,
6690           ATTRIBUTE5 = l_def_chr_rec.attribute5,
6691           ATTRIBUTE6 = l_def_chr_rec.attribute6,
6692           ATTRIBUTE7 = l_def_chr_rec.attribute7,
6693           ATTRIBUTE8 = l_def_chr_rec.attribute8,
6694           ATTRIBUTE9 = l_def_chr_rec.attribute9,
6695           ATTRIBUTE10 = l_def_chr_rec.attribute10,
6696           ATTRIBUTE11 = l_def_chr_rec.attribute11,
6697           ATTRIBUTE12 = l_def_chr_rec.attribute12,
6698           ATTRIBUTE13 = l_def_chr_rec.attribute13,
6699           ATTRIBUTE14 = l_def_chr_rec.attribute14,
6700           ATTRIBUTE15 = l_def_chr_rec.attribute15,
6701 --new columns to replace rules
6702           conversion_type = l_def_chr_rec. conversion_type,
6703           conversion_rate = l_def_chr_rec. conversion_rate,
6704           conversion_rate_date = l_def_chr_rec. conversion_rate_date,
6705           conversion_euro_rate = l_def_chr_rec. conversion_euro_rate,
6706           cust_acct_id = l_def_chr_rec.cust_acct_id,
6707           bill_to_site_use_id = l_def_chr_rec.bill_to_site_use_id,
6708           inv_rule_id = l_def_chr_rec.inv_rule_id,
6709           renewal_type_code = l_def_chr_rec.renewal_type_code,
6710           renewal_notify_to = l_def_chr_rec.renewal_notify_to,
6711           renewal_end_date = l_def_chr_rec.renewal_end_date,
6712           ship_to_site_use_id = l_def_chr_rec.ship_to_site_use_id,
6713           payment_term_id = l_def_chr_rec.payment_term_id,
6714 -- R12 Data Model Changes 4485150 End
6715           approval_type = l_def_chr_rec.approval_type,
6716           term_cancel_source = l_def_chr_rec.term_cancel_source,
6717           payment_instruction_type = l_def_chr_rec.payment_instruction_type,
6718 		cancelled_amount = l_def_chr_rec.cancelled_amount -- LLC
6719 -- R12 Data Model Changes 4485150 End
6720         WHERE ID = l_def_chr_rec.id;
6721 
6722         x_chr_rec := l_def_chr_rec;
6723         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6724         IF (l_debug = 'Y') THEN
6725             okc_debug.LOG('18900: Exiting update_row', 2);
6726             okc_debug.Reset_Indentation;
6727         END IF;
6728 
6729 
6730     EXCEPTION
6731         WHEN OKC_API.G_EXCEPTION_ERROR THEN
6732 
6733             IF (l_debug = 'Y') THEN
6734                 okc_debug.LOG('19000: Exiting update_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
6735                 okc_debug.Reset_Indentation;
6736             END IF;
6737 
6738             x_return_status := OKC_API.HANDLE_EXCEPTIONS
6739             (
6740              l_api_name,
6741              G_PKG_NAME,
6742              'OKC_API.G_RET_STS_ERROR',
6743              x_msg_count,
6744              x_msg_data,
6745              '_PVT'
6746              );
6747         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6748 
6749             IF (l_debug = 'Y') THEN
6750                 okc_debug.LOG('19100: Exiting update_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
6759              x_msg_count,
6760              x_msg_data,
6761              '_PVT'
6762              );
6763         WHEN OTHERS THEN
6764 
6765             IF (l_debug = 'Y') THEN
6766                 okc_debug.LOG('19200: Exiting update_row:OTHERS 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              'OTHERS',
6775              x_msg_count,
6776              x_msg_data,
6777              '_PVT'
6778              );
6779 
6780     END update_row;
6781   -------------------------------------
6782   -- update_row for:OKC_K_HEADERS_TL --
6783   -------------------------------------
6784     PROCEDURE update_row(
6785                          p_init_msg_list IN VARCHAR2,
6786                          x_return_status OUT NOCOPY VARCHAR2,
6787                          x_msg_count OUT NOCOPY NUMBER,
6788                          x_msg_data OUT NOCOPY VARCHAR2,
6789                          p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type,
6790                          x_okc_k_headers_tl_rec OUT NOCOPY okc_k_headers_tl_rec_type) IS
6791 
6792     l_api_version CONSTANT NUMBER := 1;
6793     l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
6794     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6795     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type := p_okc_k_headers_tl_rec;
6796     l_def_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
6797     l_row_notfound BOOLEAN := TRUE;
6798     ----------------------------------
6799     -- FUNCTION populate_new_record --
6800     ----------------------------------
6801     FUNCTION populate_new_record (
6802                                   p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type,
6803                                   x_okc_k_headers_tl_rec OUT NOCOPY okc_k_headers_tl_rec_type
6804                                   ) RETURN VARCHAR2 IS
6805     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
6806     l_row_notfound BOOLEAN := TRUE;
6807     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6808     BEGIN
6809 
6810         IF (l_debug = 'Y') THEN
6811             okc_debug.Set_Indentation('OKC_CHR_PVT');
6812             okc_debug.LOG('19300: Entered populate_new_record', 2);
6813         END IF;
6814 
6815         x_okc_k_headers_tl_rec := p_okc_k_headers_tl_rec;
6816       -- Get current database values
6817         l_okc_k_headers_tl_rec := get_rec(p_okc_k_headers_tl_rec, l_row_notfound);
6818         IF (l_row_notfound) THEN
6819             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
6820         END IF;
6821         IF (x_okc_k_headers_tl_rec.id = OKC_API.G_MISS_NUM)
6822             THEN
6823             x_okc_k_headers_tl_rec.id := l_okc_k_headers_tl_rec.id;
6824         END IF;
6825         IF (x_okc_k_headers_tl_rec.language = OKC_API.G_MISS_CHAR)
6826             THEN
6827             x_okc_k_headers_tl_rec.language := l_okc_k_headers_tl_rec.language;
6828         END IF;
6829         IF (x_okc_k_headers_tl_rec.source_lang = OKC_API.G_MISS_CHAR)
6830             THEN
6831             x_okc_k_headers_tl_rec.source_lang := l_okc_k_headers_tl_rec.source_lang;
6832         END IF;
6833         IF (x_okc_k_headers_tl_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
6834             THEN
6835             x_okc_k_headers_tl_rec.sfwt_flag := l_okc_k_headers_tl_rec.sfwt_flag;
6836         END IF;
6837         IF (x_okc_k_headers_tl_rec.short_description = OKC_API.G_MISS_CHAR)
6838             THEN
6839             x_okc_k_headers_tl_rec.short_description := l_okc_k_headers_tl_rec.short_description;
6840         END IF;
6841         IF (x_okc_k_headers_tl_rec.comments = OKC_API.G_MISS_CHAR)
6842             THEN
6843             x_okc_k_headers_tl_rec.comments := l_okc_k_headers_tl_rec.comments;
6844         END IF;
6845         IF (x_okc_k_headers_tl_rec.description = OKC_API.G_MISS_CHAR)
6846             THEN
6847             x_okc_k_headers_tl_rec.description := l_okc_k_headers_tl_rec.description;
6848         END IF;
6849         IF (x_okc_k_headers_tl_rec.cognomen = OKC_API.G_MISS_CHAR)
6850             THEN
6851             x_okc_k_headers_tl_rec.cognomen := l_okc_k_headers_tl_rec.cognomen;
6852         END IF;
6853         IF (x_okc_k_headers_tl_rec.non_response_reason = OKC_API.G_MISS_CHAR)
6854             THEN
6855             x_okc_k_headers_tl_rec.non_response_reason := l_okc_k_headers_tl_rec.non_response_reason;
6856         END IF;
6857         IF (x_okc_k_headers_tl_rec.non_response_explain = OKC_API.G_MISS_CHAR)
6858             THEN
6859             x_okc_k_headers_tl_rec.non_response_explain := l_okc_k_headers_tl_rec.non_response_explain;
6860         END IF;
6861         IF (x_okc_k_headers_tl_rec.set_aside_reason = OKC_API.G_MISS_CHAR)
6862             THEN
6863             x_okc_k_headers_tl_rec.set_aside_reason := l_okc_k_headers_tl_rec.set_aside_reason;
6864         END IF;
6865         IF (x_okc_k_headers_tl_rec.created_by = OKC_API.G_MISS_NUM)
6866             THEN
6867             x_okc_k_headers_tl_rec.created_by := l_okc_k_headers_tl_rec.created_by;
6868         END IF;
6869         IF (x_okc_k_headers_tl_rec.creation_date = OKC_API.G_MISS_DATE)
6870             THEN
6871             x_okc_k_headers_tl_rec.creation_date := l_okc_k_headers_tl_rec.creation_date;
6872         END IF;
6873         IF (x_okc_k_headers_tl_rec.last_updated_by = OKC_API.G_MISS_NUM)
6874             THEN
6875             x_okc_k_headers_tl_rec.last_updated_by := l_okc_k_headers_tl_rec.last_updated_by;
6876         END IF;
6877         IF (x_okc_k_headers_tl_rec.last_update_date = OKC_API.G_MISS_DATE)
6878             THEN
6879             x_okc_k_headers_tl_rec.last_update_date := l_okc_k_headers_tl_rec.last_update_date;
6880         END IF;
6881         IF (x_okc_k_headers_tl_rec.last_update_login = OKC_API.G_MISS_NUM)
6882             THEN
6883             x_okc_k_headers_tl_rec.last_update_login := l_okc_k_headers_tl_rec.last_update_login;
6884         END IF;
6885         RETURN(l_return_status);
6886 
6887     END populate_new_record;
6888     -----------------------------------------
6889     -- Set_Attributes for:OKC_K_HEADERS_TL --
6890     -----------------------------------------
6891     FUNCTION Set_Attributes (
6892                              p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type,
6893                              x_okc_k_headers_tl_rec OUT NOCOPY okc_k_headers_tl_rec_type
6894                              ) RETURN VARCHAR2 IS
6895     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6896     BEGIN
6897 
6898         IF (l_debug = 'Y') THEN
6899             okc_debug.Set_Indentation('OKC_CHR_PVT');
6900             okc_debug.LOG('19400: Entered Set_Attributes', 2);
6901         END IF;
6902 
6903         x_okc_k_headers_tl_rec := p_okc_k_headers_tl_rec;
6904         x_okc_k_headers_tl_rec.LANGUAGE := okc_util.get_userenv_lang;
6905         x_okc_k_headers_tl_rec.SOURCE_LANG := okc_util.get_userenv_lang;
6906         RETURN(l_return_status);
6907 
6908     END Set_Attributes;
6909     BEGIN
6910 
6911         IF (l_debug = 'Y') THEN
6912             okc_debug.Set_Indentation('OKC_CHR_PVT');
6913             okc_debug.LOG('19500: Entered update_row', 2);
6914         END IF;
6915 
6916         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6917                                                   p_init_msg_list,
6918                                                   '_PVT',
6919                                                   x_return_status);
6920         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6921             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6922         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6923             RAISE OKC_API.G_EXCEPTION_ERROR;
6924         END IF;
6925     --- Setting item attributes
6926         l_return_status := Set_Attributes(
6927                                           p_okc_k_headers_tl_rec,  -- IN
6928                                           l_okc_k_headers_tl_rec); -- OUT
6929     --- If any errors happen abort API
6930         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6931             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6932         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6933             RAISE OKC_API.G_EXCEPTION_ERROR;
6934         END IF;
6935         l_return_status := populate_new_record(l_okc_k_headers_tl_rec, l_def_okc_k_headers_tl_rec);
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         UPDATE  OKC_K_HEADERS_TL
6942         SET SHORT_DESCRIPTION = l_def_okc_k_headers_tl_rec.short_description,
6943             COMMENTS = l_def_okc_k_headers_tl_rec.comments,
6944             DESCRIPTION = l_def_okc_k_headers_tl_rec.description,
6945             COGNOMEN = l_def_okc_k_headers_tl_rec.cognomen,
6946             NON_RESPONSE_REASON = l_def_okc_k_headers_tl_rec.non_response_reason,
6947             NON_RESPONSE_EXPLAIN = l_def_okc_k_headers_tl_rec.non_response_explain,
6948             SET_ASIDE_REASON = l_def_okc_k_headers_tl_rec.set_aside_reason,
6949            SOURCE_LANG = l_def_okc_k_headers_tl_rec.source_lang,
6950         --CREATED_BY = l_def_okc_k_headers_tl_rec.created_by,
6951         --CREATION_DATE = l_def_okc_k_headers_tl_rec.creation_date,
6952             LAST_UPDATED_BY = l_def_okc_k_headers_tl_rec.last_updated_by,
6953             LAST_UPDATE_DATE = l_def_okc_k_headers_tl_rec.last_update_date,
6954             LAST_UPDATE_LOGIN = l_def_okc_k_headers_tl_rec.last_update_login
6955         WHERE ID = l_def_okc_k_headers_tl_rec.id
6956           AND USERENV('LANG')  IN (SOURCE_LANG, LANGUAGE);
6957 
6958         UPDATE  OKC_K_HEADERS_TL
6959         SET SFWT_FLAG = 'Y'
6960         WHERE ID = l_def_okc_k_headers_tl_rec.id
6961           AND SOURCE_LANG <> USERENV('LANG');
6962 
6963         x_okc_k_headers_tl_rec := l_def_okc_k_headers_tl_rec;
6964         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6965         IF (l_debug = 'Y') THEN
6966             okc_debug.LOG('19600: Exiting update_row', 2);
6967             okc_debug.Reset_Indentation;
6968         END IF;
6969 
6970 
6971     EXCEPTION
6972         WHEN OKC_API.G_EXCEPTION_ERROR THEN
6973 
6974             IF (l_debug = 'Y') THEN
6975                 okc_debug.LOG('19700: Exiting update_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
6976                 okc_debug.Reset_Indentation;
6977             END IF;
6978 
6979             x_return_status := OKC_API.HANDLE_EXCEPTIONS
6980             (
6981              l_api_name,
6982              G_PKG_NAME,
6983              'OKC_API.G_RET_STS_ERROR',
6984              x_msg_count,
6985              x_msg_data,
6986              '_PVT'
6987              );
6988         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6989 
6990             IF (l_debug = 'Y') THEN
6991                 okc_debug.LOG('19800: Exiting update_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
7000              x_msg_count,
7001              x_msg_data,
7002              '_PVT'
7003              );
7004         WHEN OTHERS THEN
7005 
7006             IF (l_debug = 'Y') THEN
7007                 okc_debug.LOG('19900: Exiting update_row:OTHERS 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              'OTHERS',
7016              x_msg_count,
7017              x_msg_data,
7018              '_PVT'
7019              );
7020 
7021     END update_row;
7022   ------------------------------------
7023   -- update_row for:OKC_K_HEADERS_V --
7024   ------------------------------------
7025     PROCEDURE update_row(
7026                          p_api_version IN NUMBER,
7027                          p_init_msg_list IN VARCHAR2,
7028                          x_return_status OUT NOCOPY VARCHAR2,
7029                          x_msg_count OUT NOCOPY NUMBER,
7030                          x_msg_data OUT NOCOPY VARCHAR2,
7031                          p_restricted_update IN VARCHAR2,
7032                          p_chrv_rec IN chrv_rec_type,
7033                          x_chrv_rec OUT NOCOPY chrv_rec_type) IS
7034 
7035     l_api_version CONSTANT NUMBER := 1;
7036     l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
7037     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7038     l_chrv_rec chrv_rec_type := p_chrv_rec;
7039     l_def_chrv_rec chrv_rec_type;
7040     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
7041     lx_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
7042     l_chr_rec chr_rec_type;
7043     lx_chr_rec chr_rec_type;
7044     -------------------------------
7045     -- FUNCTION fill_who_columns --
7046     -------------------------------
7047     FUNCTION fill_who_columns (
7048                                p_chrv_rec IN chrv_rec_type
7049                                ) RETURN chrv_rec_type IS
7050     l_chrv_rec chrv_rec_type := p_chrv_rec;
7051     BEGIN
7052 
7053         IF (l_debug = 'Y') THEN
7054             okc_debug.Set_Indentation('OKC_CHR_PVT');
7055             okc_debug.LOG('20000: Entered fill_who_columns', 2);
7056         END IF;
7057 
7058         l_chrv_rec.LAST_UPDATE_DATE := SYSDATE;
7059         l_chrv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
7060         l_chrv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
7061         RETURN(l_chrv_rec);
7062 
7063     END fill_who_columns;
7064     ----------------------------------
7065     -- FUNCTION populate_new_record --
7066     ----------------------------------
7067     FUNCTION populate_new_record (
7068                                   p_chrv_rec IN chrv_rec_type,
7069                                   x_chrv_rec OUT NOCOPY chrv_rec_type
7070                                   ) RETURN VARCHAR2 IS
7071     l_chrv_rec chrv_rec_type;
7072     l_row_notfound BOOLEAN := TRUE;
7073     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7074     BEGIN
7075 
7076         IF (l_debug = 'Y') THEN
7077             okc_debug.Set_Indentation('OKC_CHR_PVT');
7078             okc_debug.LOG('20100: Entered populate_new_record', 2);
7079         END IF;
7080 
7081         x_chrv_rec := p_chrv_rec;
7082       -- Get current database values
7083         l_chrv_rec := get_rec(p_chrv_rec, l_row_notfound);
7084         IF (l_row_notfound) THEN
7085             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7086         END IF;
7087         IF (x_chrv_rec.id = OKC_API.G_MISS_NUM)
7088             THEN
7089             x_chrv_rec.id := l_chrv_rec.id;
7090         END IF;
7091         IF (x_chrv_rec.object_version_number = OKC_API.G_MISS_NUM)
7092             THEN
7093             x_chrv_rec.object_version_number := l_chrv_rec.object_version_number;
7094         END IF;
7095         IF (x_chrv_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
7096             THEN
7097             x_chrv_rec.sfwt_flag := l_chrv_rec.sfwt_flag;
7098         END IF;
7099         IF (x_chrv_rec.chr_id_response = OKC_API.G_MISS_NUM)
7100             THEN
7101             x_chrv_rec.chr_id_response := l_chrv_rec.chr_id_response;
7102         END IF;
7103         IF (x_chrv_rec.chr_id_award = OKC_API.G_MISS_NUM)
7104             THEN
7105             x_chrv_rec.chr_id_award := l_chrv_rec.chr_id_award;
7106         END IF;
7107         IF (x_chrv_rec.INV_ORGANIZATION_ID = OKC_API.G_MISS_NUM)
7108             THEN
7109             x_chrv_rec.INV_ORGANIZATION_ID := l_chrv_rec.INV_ORGANIZATION_ID;
7110         END IF;
7111         IF (x_chrv_rec.sts_code = OKC_API.G_MISS_CHAR)
7112             THEN
7113             x_chrv_rec.sts_code := l_chrv_rec.sts_code;
7114         END IF;
7115         IF (x_chrv_rec.qcl_id = OKC_API.G_MISS_NUM)
7116             THEN
7117             x_chrv_rec.qcl_id := l_chrv_rec.qcl_id;
7118         END IF;
7119         IF (x_chrv_rec.scs_code = OKC_API.G_MISS_CHAR)
7120             THEN
7121             x_chrv_rec.scs_code := l_chrv_rec.scs_code;
7122         END IF;
7123         IF (x_chrv_rec.contract_number = OKC_API.G_MISS_CHAR)
7124             THEN
7125             x_chrv_rec.contract_number := l_chrv_rec.contract_number;
7126         END IF;
7127         IF (x_chrv_rec.currency_code = OKC_API.G_MISS_CHAR)
7128             THEN
7129             x_chrv_rec.currency_code := l_chrv_rec.currency_code;
7130         END IF;
7131         IF (x_chrv_rec.contract_number_modifier = OKC_API.G_MISS_CHAR)
7132             THEN
7133             x_chrv_rec.contract_number_modifier := l_chrv_rec.contract_number_modifier;
7134         END IF;
7135         IF (x_chrv_rec.archived_yn = OKC_API.G_MISS_CHAR)
7136             THEN
7137             x_chrv_rec.archived_yn := l_chrv_rec.archived_yn;
7138         END IF;
7139         IF (x_chrv_rec.deleted_yn = OKC_API.G_MISS_CHAR)
7140             THEN
7141             x_chrv_rec.deleted_yn := l_chrv_rec.deleted_yn;
7142         END IF;
7143         IF (x_chrv_rec.cust_po_number_req_yn = OKC_API.G_MISS_CHAR)
7144             THEN
7145             x_chrv_rec.cust_po_number_req_yn := l_chrv_rec.cust_po_number_req_yn;
7146         END IF;
7147         IF (x_chrv_rec.pre_pay_req_yn = OKC_API.G_MISS_CHAR)
7148             THEN
7149             x_chrv_rec.pre_pay_req_yn := l_chrv_rec.pre_pay_req_yn;
7150         END IF;
7151         IF (x_chrv_rec.cust_po_number = OKC_API.G_MISS_CHAR)
7152             THEN
7153             x_chrv_rec.cust_po_number := l_chrv_rec.cust_po_number;
7154         END IF;
7155         IF (x_chrv_rec.short_description = OKC_API.G_MISS_CHAR)
7156             THEN
7157             x_chrv_rec.short_description := l_chrv_rec.short_description;
7158         END IF;
7159         IF (x_chrv_rec.comments = OKC_API.G_MISS_CHAR)
7160             THEN
7161             x_chrv_rec.comments := l_chrv_rec.comments;
7162         END IF;
7163         IF (x_chrv_rec.description = OKC_API.G_MISS_CHAR)
7164             THEN
7165             x_chrv_rec.description := l_chrv_rec.description;
7166         END IF;
7167         IF (x_chrv_rec.dpas_rating = OKC_API.G_MISS_CHAR)
7168             THEN
7169             x_chrv_rec.dpas_rating := l_chrv_rec.dpas_rating;
7170         END IF;
7171         IF (x_chrv_rec.cognomen = OKC_API.G_MISS_CHAR)
7172             THEN
7173             x_chrv_rec.cognomen := l_chrv_rec.cognomen;
7174         END IF;
7175         IF (x_chrv_rec.template_yn = OKC_API.G_MISS_CHAR)
7176             THEN
7177             x_chrv_rec.template_yn := l_chrv_rec.template_yn;
7178         END IF;
7179         IF (x_chrv_rec.template_used = OKC_API.G_MISS_CHAR)
7180             THEN
7181             x_chrv_rec.template_used := l_chrv_rec.template_used;
7182         END IF;
7183         IF (x_chrv_rec.date_approved = OKC_API.G_MISS_DATE)
7184             THEN
7185             x_chrv_rec.date_approved := l_chrv_rec.date_approved;
7186         END IF;
7187         IF (x_chrv_rec.datetime_cancelled = OKC_API.G_MISS_DATE)
7188             THEN
7189             x_chrv_rec.datetime_cancelled := l_chrv_rec.datetime_cancelled;
7190         END IF;
7191         IF (x_chrv_rec.auto_renew_days = OKC_API.G_MISS_NUM)
7192             THEN
7193             x_chrv_rec.auto_renew_days := l_chrv_rec.auto_renew_days;
7194         END IF;
7195         IF (x_chrv_rec.date_issued = OKC_API.G_MISS_DATE)
7196             THEN
7197             x_chrv_rec.date_issued := l_chrv_rec.date_issued;
7198         END IF;
7199         IF (x_chrv_rec.datetime_responded = OKC_API.G_MISS_DATE)
7200             THEN
7201             x_chrv_rec.datetime_responded := l_chrv_rec.datetime_responded;
7202         END IF;
7203         IF (x_chrv_rec.non_response_reason = OKC_API.G_MISS_CHAR)
7204             THEN
7205             x_chrv_rec.non_response_reason := l_chrv_rec.non_response_reason;
7206         END IF;
7207         IF (x_chrv_rec.non_response_explain = OKC_API.G_MISS_CHAR)
7208             THEN
7209             x_chrv_rec.non_response_explain := l_chrv_rec.non_response_explain;
7210         END IF;
7211         IF (x_chrv_rec.rfp_type = OKC_API.G_MISS_CHAR)
7212             THEN
7213             x_chrv_rec.rfp_type := l_chrv_rec.rfp_type;
7214         END IF;
7215         IF (x_chrv_rec.chr_type = OKC_API.G_MISS_CHAR)
7216             THEN
7217             x_chrv_rec.chr_type := l_chrv_rec.chr_type;
7218         END IF;
7219         IF (x_chrv_rec.keep_on_mail_list = OKC_API.G_MISS_CHAR)
7220             THEN
7221             x_chrv_rec.keep_on_mail_list := l_chrv_rec.keep_on_mail_list;
7222         END IF;
7223         IF (x_chrv_rec.set_aside_reason = OKC_API.G_MISS_CHAR)
7224             THEN
7225             x_chrv_rec.set_aside_reason := l_chrv_rec.set_aside_reason;
7226         END IF;
7227         IF (x_chrv_rec.set_aside_percent = OKC_API.G_MISS_NUM)
7228             THEN
7229             x_chrv_rec.set_aside_percent := l_chrv_rec.set_aside_percent;
7230         END IF;
7231         IF (x_chrv_rec.response_copies_req = OKC_API.G_MISS_NUM)
7232             THEN
7233             x_chrv_rec.response_copies_req := l_chrv_rec.response_copies_req;
7234         END IF;
7235         IF (x_chrv_rec.date_close_projected = OKC_API.G_MISS_DATE)
7236             THEN
7237             x_chrv_rec.date_close_projected := l_chrv_rec.date_close_projected;
7238         END IF;
7239         IF (x_chrv_rec.datetime_proposed = OKC_API.G_MISS_DATE)
7240             THEN
7241             x_chrv_rec.datetime_proposed := l_chrv_rec.datetime_proposed;
7242         END IF;
7243         IF (x_chrv_rec.date_signed = OKC_API.G_MISS_DATE)
7244             THEN
7245             x_chrv_rec.date_signed := l_chrv_rec.date_signed;
7246         END IF;
7247         IF (x_chrv_rec.date_terminated = OKC_API.G_MISS_DATE)
7248             THEN
7249             x_chrv_rec.date_terminated := l_chrv_rec.date_terminated;
7250         END IF;
7251         IF (x_chrv_rec.date_renewed = OKC_API.G_MISS_DATE)
7252             THEN
7253             x_chrv_rec.date_renewed := l_chrv_rec.date_renewed;
7254         END IF;
7255         IF (x_chrv_rec.trn_code = OKC_API.G_MISS_CHAR)
7256             THEN
7257             x_chrv_rec.trn_code := l_chrv_rec.trn_code;
7258         END IF;
7259         IF (x_chrv_rec.start_date = OKC_API.G_MISS_DATE)
7260             THEN
7261             x_chrv_rec.start_date := l_chrv_rec.start_date;
7262         END IF;
7263         IF (x_chrv_rec.end_date = OKC_API.G_MISS_DATE)
7264             THEN
7265             x_chrv_rec.end_date := l_chrv_rec.end_date;
7266         END IF;
7267         IF (x_chrv_rec.authoring_org_id = OKC_API.G_MISS_NUM)
7268             THEN
7269             x_chrv_rec.authoring_org_id := l_chrv_rec.authoring_org_id;
7270         END IF;
7271       --mmadhavi added for MOAC
7272 
7273         IF (x_chrv_rec.org_id = OKC_API.G_MISS_NUM)
7274             THEN
7275             x_chrv_rec.org_id := l_chrv_rec.org_id;
7276         END IF;
7277 
7278       --mmadhavi end MOAC
7279         IF (x_chrv_rec.buy_or_sell = OKC_API.G_MISS_CHAR)
7280             THEN
7281             x_chrv_rec.buy_or_sell := l_chrv_rec.buy_or_sell;
7282         END IF;
7283         IF (x_chrv_rec.issue_or_receive = OKC_API.G_MISS_CHAR)
7284             THEN
7285             x_chrv_rec.issue_or_receive := l_chrv_rec.issue_or_receive;
7286         END IF;
7287         IF (x_chrv_rec.estimated_amount = OKC_API.G_MISS_NUM)
7288             THEN
7289             x_chrv_rec.estimated_amount := l_chrv_rec.estimated_amount;
7290         END IF;
7291         IF (x_chrv_rec.estimated_amount_renewed = OKC_API.G_MISS_NUM)
7292             THEN
7293             x_chrv_rec.estimated_amount_renewed := l_chrv_rec.estimated_amount_renewed;
7294         END IF;
7295         IF (x_chrv_rec.currency_code_renewed = OKC_API.G_MISS_CHAR)
7296             THEN
7297             x_chrv_rec.currency_code_renewed := l_chrv_rec.currency_code_renewed;
7298         END IF;
7299         IF (x_chrv_rec.upg_orig_system_ref = OKC_API.G_MISS_CHAR)
7300             THEN
7301             x_chrv_rec.upg_orig_system_ref := l_chrv_rec.upg_orig_system_ref;
7302         END IF;
7303         IF (x_chrv_rec.upg_orig_system_ref_id = OKC_API.G_MISS_NUM)
7304             THEN
7305             x_chrv_rec.upg_orig_system_ref_id := l_chrv_rec.upg_orig_system_ref_id;
7306         END IF;
7307         IF (x_chrv_rec.application_id = OKC_API.G_MISS_NUM)
7308             THEN
7309             x_chrv_rec.application_id := l_chrv_rec.application_id;
7310         END IF;
7311         IF (x_chrv_rec.orig_system_source_code = OKC_API.G_MISS_CHAR )
7312             THEN
7313             x_chrv_rec.orig_system_source_code := l_chrv_rec.orig_system_source_code ;
7314         END IF;
7315         IF (x_chrv_rec.orig_system_id1 = OKC_API.G_MISS_NUM )
7316             THEN
7317             x_chrv_rec.orig_system_id1 := l_chrv_rec.orig_system_id1 ;
7318         END IF;
7319         IF (x_chrv_rec.orig_system_reference1 = OKC_API.G_MISS_CHAR )
7320             THEN
7321             x_chrv_rec.orig_system_reference1 := l_chrv_rec.orig_system_reference1 ;
7322         END IF ;
7323         IF (x_chrv_rec.program_id = OKC_API.G_MISS_NUM)
7324             THEN
7325             x_chrv_rec.program_id := l_chrv_rec.program_id;
7326         END IF;
7327         IF (x_chrv_rec.request_id = OKC_API.G_MISS_NUM)
7328             THEN
7329             x_chrv_rec.request_id := l_chrv_rec.request_id;
7330         END IF;
7331         IF (x_chrv_rec.program_update_date = OKC_API.G_MISS_DATE)
7332             THEN
7333             x_chrv_rec.program_update_date := l_chrv_rec.program_update_date;
7334         END IF;
7335         IF (x_chrv_rec.program_application_id = OKC_API.G_MISS_NUM)
7336             THEN
7337             x_chrv_rec.program_application_id := l_chrv_rec.program_application_id;
7338         END IF;
7339         IF (x_chrv_rec.price_list_id = OKC_API.G_MISS_NUM)
7340             THEN
7341             x_chrv_rec.price_list_id := l_chrv_rec.price_list_id;
7342         END IF;
7343         IF (x_chrv_rec.pricing_date = OKC_API.G_MISS_DATE)
7344             THEN
7345             x_chrv_rec.pricing_date := l_chrv_rec.pricing_date;
7346         END IF;
7347         IF (x_chrv_rec.sign_by_date = OKC_API.G_MISS_DATE)
7348             THEN
7349             x_chrv_rec.sign_by_date := l_chrv_rec.sign_by_date;
7350         END IF;
7351         IF (x_chrv_rec.total_line_list_price = OKC_API.G_MISS_NUM)
7352             THEN
7353             x_chrv_rec.total_line_list_price := l_chrv_rec.total_line_list_price;
7354         END IF;
7355         IF (x_chrv_rec.user_estimated_amount = OKC_API.G_MISS_NUM) THEN
7356             x_chrv_rec.user_estimated_amount := l_chrv_rec.user_estimated_amount;
7357         END IF;
7358         IF (x_chrv_rec.governing_contract_yn = OKC_API.G_MISS_CHAR) THEN
7359             x_chrv_rec.governing_contract_yn := l_chrv_rec.governing_contract_yn;
7360         END IF;
7361         IF (x_chrv_rec.attribute_category = OKC_API.G_MISS_CHAR)
7362             THEN
7363             x_chrv_rec.attribute_category := l_chrv_rec.attribute_category;
7364         END IF;
7365         IF (x_chrv_rec.attribute1 = OKC_API.G_MISS_CHAR)
7366             THEN
7367             x_chrv_rec.attribute1 := l_chrv_rec.attribute1;
7368         END IF;
7369         IF (x_chrv_rec.attribute2 = OKC_API.G_MISS_CHAR)
7370             THEN
7371             x_chrv_rec.attribute2 := l_chrv_rec.attribute2;
7372         END IF;
7373         IF (x_chrv_rec.attribute3 = OKC_API.G_MISS_CHAR)
7374             THEN
7375             x_chrv_rec.attribute3 := l_chrv_rec.attribute3;
7376         END IF;
7377         IF (x_chrv_rec.attribute4 = OKC_API.G_MISS_CHAR)
7378             THEN
7379             x_chrv_rec.attribute4 := l_chrv_rec.attribute4;
7380         END IF;
7381         IF (x_chrv_rec.attribute5 = OKC_API.G_MISS_CHAR)
7382             THEN
7383             x_chrv_rec.attribute5 := l_chrv_rec.attribute5;
7384         END IF;
7385         IF (x_chrv_rec.attribute6 = OKC_API.G_MISS_CHAR)
7386             THEN
7387             x_chrv_rec.attribute6 := l_chrv_rec.attribute6;
7388         END IF;
7389         IF (x_chrv_rec.attribute7 = OKC_API.G_MISS_CHAR)
7390             THEN
7391             x_chrv_rec.attribute7 := l_chrv_rec.attribute7;
7392         END IF;
7393         IF (x_chrv_rec.attribute8 = OKC_API.G_MISS_CHAR)
7394             THEN
7395             x_chrv_rec.attribute8 := l_chrv_rec.attribute8;
7396         END IF;
7397         IF (x_chrv_rec.attribute9 = OKC_API.G_MISS_CHAR)
7398             THEN
7399             x_chrv_rec.attribute9 := l_chrv_rec.attribute9;
7400         END IF;
7401         IF (x_chrv_rec.attribute10 = OKC_API.G_MISS_CHAR)
7402             THEN
7403             x_chrv_rec.attribute10 := l_chrv_rec.attribute10;
7404         END IF;
7405         IF (x_chrv_rec.attribute11 = OKC_API.G_MISS_CHAR)
7406             THEN
7407             x_chrv_rec.attribute11 := l_chrv_rec.attribute11;
7408         END IF;
7409         IF (x_chrv_rec.attribute12 = OKC_API.G_MISS_CHAR)
7410             THEN
7411             x_chrv_rec.attribute12 := l_chrv_rec.attribute12;
7412         END IF;
7413         IF (x_chrv_rec.attribute13 = OKC_API.G_MISS_CHAR)
7414             THEN
7415             x_chrv_rec.attribute13 := l_chrv_rec.attribute13;
7416         END IF;
7417         IF (x_chrv_rec.attribute14 = OKC_API.G_MISS_CHAR)
7418             THEN
7419             x_chrv_rec.attribute14 := l_chrv_rec.attribute14;
7420         END IF;
7421         IF (x_chrv_rec.attribute15 = OKC_API.G_MISS_CHAR)
7422             THEN
7423             x_chrv_rec.attribute15 := l_chrv_rec.attribute15;
7424         END IF;
7425         IF (x_chrv_rec.created_by = OKC_API.G_MISS_NUM)
7426             THEN
7427             x_chrv_rec.created_by := l_chrv_rec.created_by;
7428         END IF;
7429         IF (x_chrv_rec.creation_date = OKC_API.G_MISS_DATE)
7430             THEN
7431             x_chrv_rec.creation_date := l_chrv_rec.creation_date;
7432         END IF;
7433         IF (x_chrv_rec.last_updated_by = OKC_API.G_MISS_NUM)
7434             THEN
7435             x_chrv_rec.last_updated_by := l_chrv_rec.last_updated_by;
7436         END IF;
7437         IF (x_chrv_rec.last_update_date = OKC_API.G_MISS_DATE)
7438             THEN
7439             x_chrv_rec.last_update_date := l_chrv_rec.last_update_date;
7440         END IF;
7441         IF (x_chrv_rec.last_update_login = OKC_API.G_MISS_NUM)
7442             THEN
7443             x_chrv_rec.last_update_login := l_chrv_rec.last_update_login;
7444         END IF;
7445             -- new  columns to replace rules
7446         IF (x_chrv_rec.conversion_type = OKC_API.G_MISS_CHAR) THEN
7447             x_chrv_rec.conversion_type := l_chrv_rec.conversion_type;
7448         END IF;
7449         IF (x_chrv_rec.conversion_rate = OKC_API.G_MISS_NUM) THEN
7450             x_chrv_rec.conversion_rate := l_chrv_rec.conversion_rate;
7451         END IF;
7452         IF (x_chrv_rec.conversion_rate_date = OKC_API.G_MISS_DATE) THEN
7453             x_chrv_rec.conversion_rate_date := l_chrv_rec.conversion_rate_date;
7454         END IF;
7455         IF (x_chrv_rec.conversion_euro_rate = OKC_API.G_MISS_NUM) THEN
7456             x_chrv_rec.conversion_euro_rate := l_chrv_rec.conversion_euro_rate;
7457         END IF;
7458         IF (x_chrv_rec.cust_acct_id = OKC_API.G_MISS_NUM) THEN
7459             x_chrv_rec.cust_acct_id := l_chrv_rec.cust_acct_id;
7460         END IF;
7461         IF (x_chrv_rec.bill_to_site_use_id = OKC_API.G_MISS_NUM) THEN
7462             x_chrv_rec.bill_to_site_use_id := l_chrv_rec.bill_to_site_use_id;
7463         END IF;
7464         IF (x_chrv_rec.inv_rule_id = OKC_API.G_MISS_NUM) THEN
7465             x_chrv_rec.inv_rule_id := l_chrv_rec.inv_rule_id;
7466         END IF;
7467         IF (x_chrv_rec.renewal_type_code = OKC_API.G_MISS_CHAR) THEN
7468             x_chrv_rec.renewal_type_code := l_chrv_rec.renewal_type_code;
7469         END IF;
7470         IF (x_chrv_rec.renewal_notify_to = OKC_API.G_MISS_NUM) THEN
7471             x_chrv_rec.renewal_notify_to := l_chrv_rec.renewal_notify_to;
7472         END IF;
7473         IF (x_chrv_rec.renewal_end_date = OKC_API.G_MISS_DATE) THEN
7474             x_chrv_rec.renewal_end_date := l_chrv_rec.renewal_end_date;
7475         END IF;
7476         IF (x_chrv_rec.ship_to_site_use_id = OKC_API.G_MISS_NUM) THEN
7477             x_chrv_rec.ship_to_site_use_id := l_chrv_rec.ship_to_site_use_id;
7478         END IF;
7479         IF (x_chrv_rec.payment_term_id = OKC_API.G_MISS_NUM) THEN
7480             x_chrv_rec.payment_term_id := l_chrv_rec.payment_term_id;
7481         END IF;
7482         IF (x_chrv_rec.document_id = OKC_API.G_MISS_NUM) THEN
7483             x_chrv_rec.document_id := l_chrv_rec.document_id;
7484         END IF;
7485 -- R12 Data Model Changes 4485150 Start
7486         IF (x_chrv_rec.approval_type = OKC_API.G_MISS_CHAR) THEN
7487             x_chrv_rec.approval_type := l_chrv_rec.approval_type;
7488         END IF;
7489         IF (x_chrv_rec.term_cancel_source = OKC_API.G_MISS_CHAR) THEN
7490             x_chrv_rec.term_cancel_source := l_chrv_rec.term_cancel_source;
7491         END IF;
7492         IF (x_chrv_rec.payment_instruction_type = OKC_API.G_MISS_CHAR) THEN
7493             x_chrv_rec.payment_instruction_type := l_chrv_rec.payment_instruction_type;
7494         END IF;
7495 	   -- LLC
7496 	   IF (x_chrv_rec.cancelled_amount = OKC_API.G_MISS_NUM) THEN
7497 	   	  x_chrv_rec.cancelled_amount := l_chrv_rec.cancelled_amount;
7498 	   END IF;
7499 -- R12 Data Model Changes 4485150 End
7500 
7501         RETURN(l_return_status);
7502 
7503     END populate_new_record;
7504     ----------------------------------------
7505     -- Set_Attributes for:OKC_K_HEADERS_V --
7506     ----------------------------------------
7507     FUNCTION Set_Attributes (
7508                              p_chrv_rec IN chrv_rec_type,
7509                              x_chrv_rec OUT NOCOPY chrv_rec_type
7510                              ) RETURN VARCHAR2 IS
7511     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7512     BEGIN
7513 
7514         IF (l_debug = 'Y') THEN
7515             okc_debug.Set_Indentation('OKC_CHR_PVT');
7516             okc_debug.LOG('20200: Entered Set_Attributes', 2);
7517         END IF;
7518 
7519         x_chrv_rec := p_chrv_rec;
7520         x_chrv_rec.OBJECT_VERSION_NUMBER := NVL(x_chrv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
7521       /************************ HAND-CODED *********************************/
7522         x_chrv_rec.SFWT_FLAG := UPPER(x_chrv_rec.SFWT_FLAG);
7523         x_chrv_rec.ARCHIVED_YN := UPPER(x_chrv_rec.ARCHIVED_YN);
7524         x_chrv_rec.DELETED_YN := UPPER(x_chrv_rec.DELETED_YN);
7525         x_chrv_rec.CUST_PO_NUMBER_REQ_YN := UPPER(x_chrv_rec.CUST_PO_NUMBER_REQ_YN);
7526         x_chrv_rec.PRE_PAY_REQ_YN := UPPER(x_chrv_rec.PRE_PAY_REQ_YN);
7527         x_chrv_rec.TEMPLATE_YN := UPPER(x_chrv_rec.TEMPLATE_YN);
7528         x_chrv_rec.KEEP_ON_MAIL_LIST := UPPER(x_chrv_rec.KEEP_ON_MAIL_LIST);
7529         x_chrv_rec.CHR_TYPE := UPPER(x_chrv_rec.CHR_TYPE);
7530 
7531 	 -- If contract is cancelled, update datetime_cancelled
7532         IF (Get_Status_Type(x_chrv_rec.STS_CODE) = 'CANCELLED' AND
7533             (x_chrv_rec.datetime_cancelled = OKC_API.G_MISS_DATE OR
7534              x_chrv_rec.datetime_cancelled IS NULL) )
7535             THEN
7536             x_chrv_rec.datetime_cancelled := SYSDATE;
7537         END IF;
7538       /*********************** END HAND-CODED ********************************/
7539         RETURN(l_return_status);
7540 
7541     END Set_Attributes;
7542     BEGIN
7543 
7544         IF (l_debug = 'Y') THEN
7545             okc_debug.Set_Indentation('OKC_CHR_PVT');
7546             okc_debug.LOG('20300: Entered update_row', 2);
7547         END IF;
7548 
7549         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
7550                                                   G_PKG_NAME,
7551                                                   p_init_msg_list,
7552                                                   l_api_version,
7553                                                   p_api_version,
7554                                                   '_PVT',
7555                                                   x_return_status);
7556         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7557             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7558         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7559             RAISE OKC_API.G_EXCEPTION_ERROR;
7560         END IF;
7561     --- Setting item attributes
7562         l_return_status := Set_Attributes(
7563                                           p_chrv_rec,  -- IN
7564                                           l_chrv_rec); -- OUT
7565     --- If any errors happen abort API
7566         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7567             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7568         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7569             RAISE OKC_API.G_EXCEPTION_ERROR;
7570         END IF;
7571         l_return_status := populate_new_record(l_chrv_rec, l_def_chrv_rec);
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         l_def_chrv_rec := fill_who_columns(l_def_chrv_rec);
7578 
7579         IF p_chrv_rec.VALIDATE_YN = 'Y' THEN ---Bug#3150149
7580        --- Validate all non-missing attributes (Item Level Validation)
7581        -- No validation if the status changes from ENTERED -> CANCELED
7582             IF (NVL(p_chrv_rec.new_ste_code, 'x') <> 'CANCELLED') THEN
7583                 l_return_status := Validate_Attributes(l_def_chrv_rec);
7584             END IF;
7585         END IF; ---Bug#3150149.
7586 
7587     --- If any errors happen abort API
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_return_status := Validate_Record(l_def_chrv_rec);
7594         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7595             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7596         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7597             RAISE OKC_API.G_EXCEPTION_ERROR;
7598         END IF;
7599 
7600     --------------------------------------
7601     -- Move VIEW record to "Child" records
7602     --------------------------------------
7603         migrate(l_def_chrv_rec, l_okc_k_headers_tl_rec);
7604         migrate(l_def_chrv_rec, l_chr_rec);
7605     --------------------------------------------
7606     -- Call the UPDATE_ROW for each child record
7607     --------------------------------------------
7608         update_row(
7609                    p_init_msg_list,
7610                    x_return_status,
7611                    x_msg_count,
7612                    x_msg_data,
7613                    l_okc_k_headers_tl_rec,
7614                    lx_okc_k_headers_tl_rec
7615                    );
7616         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7617             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7618         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7619             RAISE OKC_API.G_EXCEPTION_ERROR;
7620         END IF;
7621         migrate(lx_okc_k_headers_tl_rec, l_def_chrv_rec);
7622         update_row(
7623                    p_init_msg_list,
7624                    x_return_status,
7625                    x_msg_count,
7626                    x_msg_data,
7627                    p_restricted_update,
7628                    l_chr_rec,
7629                    lx_chr_rec
7630                    );
7631         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7632             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7633         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7634             RAISE OKC_API.G_EXCEPTION_ERROR;
7635         END IF;
7636         migrate(lx_chr_rec, l_def_chrv_rec);
7637         x_chrv_rec := l_def_chrv_rec;
7638         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
7639         IF (l_debug = 'Y') THEN
7640             okc_debug.LOG('20400: Exiting update_row', 2);
7641             okc_debug.Reset_Indentation;
7642         END IF;
7643 
7644 
7645     EXCEPTION
7646         WHEN OKC_API.G_EXCEPTION_ERROR THEN
7647 
7648             IF (l_debug = 'Y') THEN
7649                 okc_debug.LOG('20500: Exiting update_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
7650                 okc_debug.Reset_Indentation;
7651             END IF;
7652 
7653             x_return_status := OKC_API.HANDLE_EXCEPTIONS
7654             (
7655              l_api_name,
7656              G_PKG_NAME,
7657              'OKC_API.G_RET_STS_ERROR',
7658              x_msg_count,
7659              x_msg_data,
7660              '_PVT'
7661              );
7662         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7663 
7664             IF (l_debug = 'Y') THEN
7665                 okc_debug.LOG('20600: Exiting update_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
7674              x_msg_count,
7675              x_msg_data,
7676              '_PVT'
7677              );
7678         WHEN OTHERS THEN
7679 
7680             IF (l_debug = 'Y') THEN
7681                 okc_debug.LOG('20700: Exiting update_row:OTHERS 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              'OTHERS',
7690              x_msg_count,
7691              x_msg_data,
7692              '_PVT'
7693              );
7694 
7695     END update_row;
7696   ----------------------------------------
7697   -- PL/SQL TBL update_row for:CHRV_TBL --
7698   ----------------------------------------
7699     PROCEDURE update_row(
7700                          p_api_version IN NUMBER,
7701                          p_init_msg_list IN VARCHAR2,
7702                          x_return_status OUT NOCOPY VARCHAR2,
7703                          x_msg_count OUT NOCOPY NUMBER,
7704                          x_msg_data OUT NOCOPY VARCHAR2,
7705                          p_restricted_update IN VARCHAR2,
7706                          p_chrv_tbl IN chrv_tbl_type,
7707                          x_chrv_tbl OUT NOCOPY chrv_tbl_type) IS
7708 
7709     l_api_version CONSTANT NUMBER := 1;
7710     l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
7711     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7712     l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7713     i NUMBER := 0;
7714     BEGIN
7715 
7716         IF (l_debug = 'Y') THEN
7717             okc_debug.Set_Indentation('OKC_CHR_PVT');
7718             okc_debug.LOG('20800: Entered update_row', 2);
7719         END IF;
7720 
7721         OKC_API.init_msg_list(p_init_msg_list);
7722     -- Make sure PL/SQL table has records in it before passing
7723         IF (p_chrv_tbl.COUNT > 0) THEN
7724             i := p_chrv_tbl.FIRST;
7725             LOOP
7726                 update_row (
7727                             p_api_version => p_api_version,
7728                             p_init_msg_list => OKC_API.G_FALSE,
7729                             x_return_status => x_return_status,
7730                             x_msg_count => x_msg_count,
7731                             x_msg_data => x_msg_data,
7732                             p_restricted_update => p_restricted_update,
7733                             p_chrv_rec => p_chrv_tbl(i),
7734                             x_chrv_rec => x_chrv_tbl(i));
7735 
7736 		-- store the highest degree of error
7737                 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
7738                     IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
7739                         l_overall_status := x_return_status;
7740                     END IF;
7741                 END IF;
7742 
7743                 EXIT WHEN (i = p_chrv_tbl.LAST);
7744                 i := p_chrv_tbl.NEXT(i);
7745             END LOOP;
7746 	 -- return overall status
7747             x_return_status := l_overall_status;
7748         END IF;
7749         IF (l_debug = 'Y') THEN
7750             okc_debug.LOG('20900: Exiting update_row', 2);
7751             okc_debug.Reset_Indentation;
7752         END IF;
7753 
7754 
7755     EXCEPTION
7756         WHEN OKC_API.G_EXCEPTION_ERROR THEN
7757 
7758             IF (l_debug = 'Y') THEN
7759                 okc_debug.LOG('21000: Exiting update_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
7760                 okc_debug.Reset_Indentation;
7761             END IF;
7762 
7763             x_return_status := OKC_API.HANDLE_EXCEPTIONS
7764             (
7765              l_api_name,
7766              G_PKG_NAME,
7767              'OKC_API.G_RET_STS_ERROR',
7768              x_msg_count,
7769              x_msg_data,
7770              '_PVT'
7771              );
7772         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7773 
7774             IF (l_debug = 'Y') THEN
7775                 okc_debug.LOG('21100: Exiting update_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
7784              x_msg_count,
7785              x_msg_data,
7786              '_PVT'
7787              );
7788         WHEN OTHERS THEN
7789 
7790             IF (l_debug = 'Y') THEN
7791                 okc_debug.LOG('21200: Exiting update_row:OTHERS 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              'OTHERS',
7800              x_msg_count,
7801              x_msg_data,
7802              '_PVT'
7803              );
7804 
7805     END update_row;
7806 
7807   ---------------------------------------------------------------------------
7808   -- PROCEDURE delete_row
7809   ---------------------------------------------------------------------------
7810   ------------------------------------
7811   -- delete_row for:OKC_K_HEADERS_ALL_B --
7812   ------------------------------------
7813     PROCEDURE delete_row(
7814                          p_init_msg_list IN VARCHAR2,
7815                          x_return_status OUT NOCOPY VARCHAR2,
7816                          x_msg_count OUT NOCOPY NUMBER,
7817                          x_msg_data OUT NOCOPY VARCHAR2,
7818                          p_chr_rec IN chr_rec_type) IS
7819 
7820     l_api_version CONSTANT NUMBER := 1;
7821     l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
7822     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7823     l_chr_rec chr_rec_type := p_chr_rec;
7824     l_row_notfound BOOLEAN := TRUE;
7825     BEGIN
7826 
7827         IF (l_debug = 'Y') THEN
7828             okc_debug.Set_Indentation('OKC_CHR_PVT');
7829             okc_debug.LOG('21300: Entered delete_row', 2);
7830         END IF;
7831 
7832         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
7833                                                   p_init_msg_list,
7834                                                   '_PVT',
7835                                                   x_return_status);
7836         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7837             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7838         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7839             RAISE OKC_API.G_EXCEPTION_ERROR;
7840         END IF;
7841         DELETE FROM OKC_K_HEADERS_ALL_B --mmadhavi changed to _ALL for MOAC
7842          WHERE ID = l_chr_rec.id;
7843 
7844         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
7845         IF (l_debug = 'Y') THEN
7846             okc_debug.LOG('21400: Exiting delete_row', 2);
7847             okc_debug.Reset_Indentation;
7848         END IF;
7849 
7850 
7851     EXCEPTION
7852         WHEN OKC_API.G_EXCEPTION_ERROR THEN
7853 
7854             IF (l_debug = 'Y') THEN
7855                 okc_debug.LOG('21500: Exiting delete_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
7856                 okc_debug.Reset_Indentation;
7857             END IF;
7858 
7859             x_return_status := OKC_API.HANDLE_EXCEPTIONS
7860             (
7861              l_api_name,
7862              G_PKG_NAME,
7863              'OKC_API.G_RET_STS_ERROR',
7864              x_msg_count,
7865              x_msg_data,
7866              '_PVT'
7867              );
7868         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7869 
7870             IF (l_debug = 'Y') THEN
7871                 okc_debug.LOG('21600: Exiting delete_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
7880              x_msg_count,
7881              x_msg_data,
7882              '_PVT'
7883              );
7884         WHEN OTHERS THEN
7885 
7886             IF (l_debug = 'Y') THEN
7887                 okc_debug.LOG('21700: Exiting delete_row:OTHERS 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              'OTHERS',
7896              x_msg_count,
7897              x_msg_data,
7898              '_PVT'
7899              );
7900 
7901     END delete_row;
7902   -------------------------------------
7903   -- delete_row for:OKC_K_HEADERS_TL --
7904   -------------------------------------
7905     PROCEDURE delete_row(
7906                          p_init_msg_list IN VARCHAR2,
7907                          x_return_status OUT NOCOPY VARCHAR2,
7908                          x_msg_count OUT NOCOPY NUMBER,
7909                          x_msg_data OUT NOCOPY VARCHAR2,
7910                          p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type) IS
7911 
7912     l_api_version CONSTANT NUMBER := 1;
7913     l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
7914     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7915     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type := p_okc_k_headers_tl_rec;
7916     l_row_notfound BOOLEAN := TRUE;
7917     -----------------------------------------
7918     -- Set_Attributes for:OKC_K_HEADERS_TL --
7919     -----------------------------------------
7920     FUNCTION Set_Attributes (
7921                              p_okc_k_headers_tl_rec IN okc_k_headers_tl_rec_type,
7922                              x_okc_k_headers_tl_rec OUT NOCOPY okc_k_headers_tl_rec_type
7923                              ) RETURN VARCHAR2 IS
7924     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7925     BEGIN
7926 
7927         IF (l_debug = 'Y') THEN
7928             okc_debug.Set_Indentation('OKC_CHR_PVT');
7929             okc_debug.LOG('21800: Entered Set_Attributes', 2);
7930         END IF;
7931 
7932         x_okc_k_headers_tl_rec := p_okc_k_headers_tl_rec;
7933         x_okc_k_headers_tl_rec.LANGUAGE := okc_util.get_userenv_lang;
7934         RETURN(l_return_status);
7935 
7936     END Set_Attributes;
7937     BEGIN
7938 
7939         IF (l_debug = 'Y') THEN
7940             okc_debug.Set_Indentation('OKC_CHR_PVT');
7941             okc_debug.LOG('21900: Entered delete_row', 2);
7942         END IF;
7943 
7944         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
7945                                                   p_init_msg_list,
7946                                                   '_PVT',
7947                                                   x_return_status);
7948         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7949             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7950         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7951             RAISE OKC_API.G_EXCEPTION_ERROR;
7952         END IF;
7953     --- Setting item attributes
7954         l_return_status := Set_Attributes(
7955                                           p_okc_k_headers_tl_rec,  -- IN
7956                                           l_okc_k_headers_tl_rec); -- OUT
7957     --- If any errors happen abort API
7958         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7959             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7960         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7961             RAISE OKC_API.G_EXCEPTION_ERROR;
7962         END IF;
7963         DELETE FROM OKC_K_HEADERS_TL
7964          WHERE ID = l_okc_k_headers_tl_rec.id;
7965 
7966         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
7967         IF (l_debug = 'Y') THEN
7968             okc_debug.LOG('22000: Exiting delete_row', 2);
7969             okc_debug.Reset_Indentation;
7970         END IF;
7971 
7972 
7973     EXCEPTION
7974         WHEN OKC_API.G_EXCEPTION_ERROR THEN
7975 
7976             IF (l_debug = 'Y') THEN
7977                 okc_debug.LOG('22100: Exiting delete_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
7978                 okc_debug.Reset_Indentation;
7979             END IF;
7980 
7981             x_return_status := OKC_API.HANDLE_EXCEPTIONS
7982             (
7983              l_api_name,
7984              G_PKG_NAME,
7985              'OKC_API.G_RET_STS_ERROR',
7986              x_msg_count,
7987              x_msg_data,
7988              '_PVT'
7989              );
7990         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7991 
7992             IF (l_debug = 'Y') THEN
7993                 okc_debug.LOG('22200: Exiting delete_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
8002              x_msg_count,
8003              x_msg_data,
8004              '_PVT'
8005              );
8006         WHEN OTHERS THEN
8007 
8008             IF (l_debug = 'Y') THEN
8009                 okc_debug.LOG('22300: Exiting delete_row:OTHERS 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              'OTHERS',
8018              x_msg_count,
8019              x_msg_data,
8020              '_PVT'
8021              );
8022 
8023     END delete_row;
8024   ------------------------------------
8025   -- delete_row for:OKC_K_HEADERS_V --
8026   ------------------------------------
8027     PROCEDURE delete_row(
8028                          p_api_version IN NUMBER,
8029                          p_init_msg_list IN VARCHAR2,
8030                          x_return_status OUT NOCOPY VARCHAR2,
8031                          x_msg_count OUT NOCOPY NUMBER,
8032                          x_msg_data OUT NOCOPY VARCHAR2,
8033                          p_chrv_rec IN chrv_rec_type) IS
8034 
8035     l_api_version CONSTANT NUMBER := 1;
8036     l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
8037     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
8038     l_chrv_rec chrv_rec_type := p_chrv_rec;
8039     l_okc_k_headers_tl_rec okc_k_headers_tl_rec_type;
8040     l_chr_rec chr_rec_type;
8041     BEGIN
8042 
8043         IF (l_debug = 'Y') THEN
8044             okc_debug.Set_Indentation('OKC_CHR_PVT');
8045             okc_debug.LOG('22400: Entered delete_row', 2);
8046         END IF;
8047 
8048         l_return_status := OKC_API.START_ACTIVITY(l_api_name,
8049                                                   G_PKG_NAME,
8050                                                   p_init_msg_list,
8051                                                   l_api_version,
8052                                                   p_api_version,
8053                                                   '_PVT',
8054                                                   x_return_status);
8055         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8056             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8057         ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
8058             RAISE OKC_API.G_EXCEPTION_ERROR;
8059         END IF;
8060     --------------------------------------
8061     -- Move VIEW record to "Child" records
8062     --------------------------------------
8063         migrate(l_chrv_rec, l_okc_k_headers_tl_rec);
8064         migrate(l_chrv_rec, l_chr_rec);
8065     --------------------------------------------
8066     -- Call the DELETE_ROW for each child record
8067     --------------------------------------------
8068         delete_row(
8069                    p_init_msg_list,
8070                    x_return_status,
8071                    x_msg_count,
8072                    x_msg_data,
8073                    l_okc_k_headers_tl_rec
8074                    );
8075         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8076             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8077         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8078             RAISE OKC_API.G_EXCEPTION_ERROR;
8079         END IF;
8080         delete_row(
8081                    p_init_msg_list,
8082                    x_return_status,
8083                    x_msg_count,
8084                    x_msg_data,
8085                    l_chr_rec
8086                    );
8087         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8088             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8089         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8090             RAISE OKC_API.G_EXCEPTION_ERROR;
8091         END IF;
8092         OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
8093         IF (l_debug = 'Y') THEN
8094             okc_debug.LOG('22500: Exiting delete_row', 2);
8095             okc_debug.Reset_Indentation;
8096         END IF;
8097 
8098 
8099     EXCEPTION
8100         WHEN OKC_API.G_EXCEPTION_ERROR THEN
8101 
8102             IF (l_debug = 'Y') THEN
8103                 okc_debug.LOG('22600: Exiting delete_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
8104                 okc_debug.Reset_Indentation;
8105             END IF;
8106 
8107             x_return_status := OKC_API.HANDLE_EXCEPTIONS
8108             (
8109              l_api_name,
8110              G_PKG_NAME,
8111              'OKC_API.G_RET_STS_ERROR',
8112              x_msg_count,
8113              x_msg_data,
8114              '_PVT'
8115              );
8116         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8117 
8118             IF (l_debug = 'Y') THEN
8119                 okc_debug.LOG('22700: Exiting delete_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
8128              x_msg_count,
8129              x_msg_data,
8130              '_PVT'
8131              );
8132         WHEN OTHERS THEN
8133 
8134             IF (l_debug = 'Y') THEN
8135                 okc_debug.LOG('22800: Exiting delete_row:OTHERS 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              'OTHERS',
8144              x_msg_count,
8145              x_msg_data,
8146              '_PVT'
8147              );
8148 
8149     END delete_row;
8150   ----------------------------------------
8151   -- PL/SQL TBL delete_row for:CHRV_TBL --
8152   ----------------------------------------
8153     PROCEDURE delete_row(
8154                          p_api_version IN NUMBER,
8155                          p_init_msg_list IN VARCHAR2,
8156                          x_return_status OUT NOCOPY VARCHAR2,
8157                          x_msg_count OUT NOCOPY NUMBER,
8158                          x_msg_data OUT NOCOPY VARCHAR2,
8159                          p_chrv_tbl IN chrv_tbl_type) IS
8160 
8161     l_api_version CONSTANT NUMBER := 1;
8162     l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
8163     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
8164     l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
8165     i NUMBER := 0;
8166     l_dummy_val NUMBER;
8167     CURSOR l_clev_csr IS
8168         SELECT COUNT(1)
8169         FROM OKC_K_LINES_B
8170         WHERE chr_id = p_chrv_tbl(i).id;
8171     BEGIN
8172 
8173         IF (l_debug = 'Y') THEN
8174             okc_debug.Set_Indentation('OKC_CHR_PVT');
8175             okc_debug.LOG('22900: Entered delete_row', 2);
8176         END IF;
8177 
8178         OKC_API.init_msg_list(p_init_msg_list);
8179     -- Make sure PL/SQL table has records in it before passing
8180         IF (p_chrv_tbl.COUNT > 0) THEN
8181             i := p_chrv_tbl.FIRST;
8182             LOOP
8183 		/************************ HAND-CODED ***************************/
8184     		-- check whether detail records exists
8185                 OPEN l_clev_csr;
8186                 FETCH l_clev_csr INTO l_dummy_val;
8187                 CLOSE l_clev_csr;
8188 
8189     		-- delete only if there are no detail records
8190                 IF (l_dummy_val = 0) THEN
8191                     delete_row (
8192                                 p_api_version => p_api_version,
8193                                 p_init_msg_list => p_init_msg_list,
8194                                 x_return_status => x_return_status,
8195                                 x_msg_count => x_msg_count,
8196                                 x_msg_data => x_msg_data,
8197                                 p_chrv_rec => p_chrv_tbl(i));
8198 
8199 				-- store the highest degree of error
8200                     IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
8201                         IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
8202                             l_overall_status := x_return_status;
8203                         END IF;
8204                     END IF;
8205                 ELSE
8206                     OKC_API.SET_MESSAGE(
8207                                         p_app_name => g_app_name,
8208                                         p_msg_name => G_CHILD_RECORD_EXISTS);
8209 	    		-- notify caller of an error
8210                     x_return_status := OKC_API.G_RET_STS_ERROR;
8211 
8212 		     -- store the highest degree of error
8213                     IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
8214                         l_overall_status := x_return_status;
8215                     END IF;
8216 
8217                 END IF;
8218 		/*********************** END HAND-CODED ************************/
8219 
8220                 EXIT WHEN (i = p_chrv_tbl.LAST);
8221                 i := p_chrv_tbl.NEXT(i);
8222             END LOOP;
8223 	 -- return overall status
8224             x_return_status := l_overall_status;
8225         END IF;
8226         IF (l_debug = 'Y') THEN
8227             okc_debug.LOG('23000: Exiting delete_row', 2);
8228             okc_debug.Reset_Indentation;
8229         END IF;
8230 
8231 
8232     EXCEPTION
8233         WHEN OKC_API.G_EXCEPTION_ERROR THEN
8234 
8235             IF (l_debug = 'Y') THEN
8236                 okc_debug.LOG('23100: Exiting delete_row:OKC_API.G_EXCEPTION_ERROR Exception', 2);
8237                 okc_debug.Reset_Indentation;
8238             END IF;
8239 
8240             x_return_status := OKC_API.HANDLE_EXCEPTIONS
8241             (
8242              l_api_name,
8243              G_PKG_NAME,
8244              'OKC_API.G_RET_STS_ERROR',
8245              x_msg_count,
8246              x_msg_data,
8247              '_PVT'
8248              );
8249         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8250 
8251             IF (l_debug = 'Y') THEN
8252                 okc_debug.LOG('23200: Exiting delete_row:OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
8261              x_msg_count,
8262              x_msg_data,
8263              '_PVT'
8264              );
8265         WHEN OTHERS THEN
8266 
8267             IF (l_debug = 'Y') THEN
8268                 okc_debug.LOG('23300: Exiting delete_row:OTHERS 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              'OTHERS',
8277              x_msg_count,
8278              x_msg_data,
8279              '_PVT'
8280              );
8281 
8282     END delete_row;
8283 
8284 ---------------------------------------------------------------
8285 -- Procedure for mass insert in OKC_K_HEADERS _B and TL tables
8286 ---------------------------------------------------------------
8287     PROCEDURE INSERT_ROW_UPG(x_return_status OUT NOCOPY VARCHAR2, p_chrv_tbl chrv_tbl_type) IS
8288     l_tabsize NUMBER := p_chrv_tbl.COUNT;
8289     l_source_lang VARCHAR2(12) := okc_util.get_userenv_lang;
8290 
8291     in_id OKC_DATATYPES.NumberTabTyp;
8292     in_object_version_number OKC_DATATYPES.NumberTabTyp;
8293     in_sfwt_flag OKC_DATATYPES.Var3TabTyp;
8294     in_chr_id_response OKC_DATATYPES.NumberTabTyp;
8295     in_chr_id_award OKC_DATATYPES.NumberTabTyp;
8296     in_inv_organization_id OKC_DATATYPES.NumberTabTyp;
8297     in_sts_code OKC_DATATYPES.Var30TabTyp;
8298     in_qcl_id OKC_DATATYPES.NumberTabTyp;
8299     in_scs_code OKC_DATATYPES.Var30TabTyp;
8300     in_contract_number OKC_DATATYPES.Var120TabTyp;
8301     in_currency_code OKC_DATATYPES.Var15TabTyp;
8302     in_contract_number_modifier OKC_DATATYPES.Var120TabTyp;
8303     in_archived_yn OKC_DATATYPES.Var3TabTyp;
8304     in_deleted_yn OKC_DATATYPES.Var3TabTyp;
8305     in_cust_po_number_req_yn OKC_DATATYPES.Var3TabTyp;
8306     in_pre_pay_req_yn OKC_DATATYPES.Var3TabTyp;
8307     in_cust_po_number OKC_DATATYPES.Var150TabTyp;
8308     in_short_description OKC_DATATYPES.Var600TabTyp;
8309     in_comments OKC_DATATYPES.Var1995TabTyp;
8310     in_description OKC_DATATYPES.Var1995TabTyp;
8311     in_dpas_rating OKC_DATATYPES.Var24TabTyp;
8312     in_cognomen OKC_DATATYPES.Var300TabTyp;
8313     in_template_yn OKC_DATATYPES.Var3TabTyp;
8314     in_template_used OKC_DATATYPES.Var120TabTyp;
8315     in_date_approved OKC_DATATYPES.DateTabTyp;
8316     in_datetime_cancelled OKC_DATATYPES.DateTabTyp;
8317     in_auto_renew_days OKC_DATATYPES.NumberTabTyp;
8318     in_date_issued OKC_DATATYPES.DateTabTyp;
8319     in_datetime_responded OKC_DATATYPES.DateTabTyp;
8320     in_non_response_reason OKC_DATATYPES.Var3TabTyp;
8321     in_non_response_explain OKC_DATATYPES.Var1995TabTyp;
8322     in_rfp_type OKC_DATATYPES.Var30TabTyp;
8323     in_chr_type OKC_DATATYPES.Var30TabTyp;
8324     in_keep_on_mail_list OKC_DATATYPES.Var3TabTyp;
8325     in_set_aside_reason OKC_DATATYPES.Var3TabTyp;
8326     in_set_aside_percent OKC_DATATYPES.NumberTabTyp;
8327     in_response_copies_req OKC_DATATYPES.NumberTabTyp;
8328     in_date_close_projected OKC_DATATYPES.DateTabTyp;
8329     in_datetime_proposed OKC_DATATYPES.DateTabTyp;
8330     in_date_signed OKC_DATATYPES.DateTabTyp;
8331     in_date_terminated OKC_DATATYPES.DateTabTyp;
8332     in_date_renewed OKC_DATATYPES.DateTabTyp;
8333     in_trn_code OKC_DATATYPES.Var30TabTyp;
8334     in_start_date OKC_DATATYPES.DateTabTyp;
8335     in_end_date OKC_DATATYPES.DateTabTyp;
8336     in_authoring_org_id OKC_DATATYPES.NumberTabTyp;
8337     in_org_id OKC_DATATYPES.NumberTabTyp; --mmadhavi added for MOAC
8338     in_buy_or_sell OKC_DATATYPES.Var3TabTyp;
8339     in_issue_or_receive OKC_DATATYPES.Var3TabTyp;
8340     in_estimated_amount OKC_DATATYPES.NumberTabTyp;
8341     in_estimated_amount_renewed OKC_DATATYPES.NumberTabTyp;
8342     in_currency_code_renewed OKC_DATATYPES.Var15TabTyp;
8343     in_upg_orig_system_ref OKC_DATATYPES.Var75TabTyp;
8344     in_upg_orig_system_ref_id OKC_DATATYPES.NumberTabTyp;
8345     in_application_id OKC_DATATYPES.NumberTabTyp;
8346     in_orig_system_source_code OKC_DATATYPES.Var30TabTyp;
8347     in_orig_system_id1 OKC_DATATYPES.NumberTabTyp;
8348     in_orig_system_reference1 OKC_DATATYPES.Var30TabTyp;
8349     in_program_id OKC_DATATYPES.NumberTabTyp;
8350     in_request_id OKC_DATATYPES.NumberTabTyp;
8351     in_program_update_date OKC_DATATYPES.DateTabTyp;
8352     in_program_application_id OKC_DATATYPES.NumberTabTyp;
8353     in_price_list_id OKC_DATATYPES.NumberTabTyp;
8354     in_pricing_date OKC_DATATYPES.DateTabTyp;
8355     in_sign_by_date OKC_DATATYPES.DateTabTyp;
8356     in_total_line_list_price OKC_DATATYPES.NumberTabTyp;
8357     in_user_estimated_amount OKC_DATATYPES.NumberTabTyp;
8358     in_governing_contract_yn OKC_DATATYPES.Var3TabTyp;
8359   --new columns to replace rules
8360     in_conversion_type OKC_DATATYPES.Var30TabTyp;
8361     in_conversion_rate OKC_DATATYPES.NumberTabTyp;
8362     in_conversion_rate_date OKC_DATATYPES.DateTabTyp;
8363     in_conversion_euro_rate OKC_DATATYPES.NumberTabTyp;
8364     in_cust_acct_id OKC_DATATYPES.Number15TabTyp;
8365     in_bill_to_site_use_id OKC_DATATYPES.Number15TabTyp;
8366     in_inv_rule_id OKC_DATATYPES.Number15TabTyp;
8367     in_renewal_type_code OKC_DATATYPES.Var30TabTyp;
8368     in_renewal_notify_to OKC_DATATYPES.NumberTabTyp;
8369     in_renewal_end_date OKC_DATATYPES.DateTabTyp;
8370     in_ship_to_site_use_id OKC_DATATYPES.Number15TabTyp;
8371     in_payment_term_id OKC_DATATYPES.Number15TabTyp;
8372 --
8373     in_attribute_category OKC_DATATYPES.Var90TabTyp;
8374     in_attribute1 OKC_DATATYPES.Var450TabTyp;
8375     in_attribute2 OKC_DATATYPES.Var450TabTyp;
8376     in_attribute3 OKC_DATATYPES.Var450TabTyp;
8377     in_attribute4 OKC_DATATYPES.Var450TabTyp;
8378     in_attribute5 OKC_DATATYPES.Var450TabTyp;
8379     in_attribute6 OKC_DATATYPES.Var450TabTyp;
8380     in_attribute7 OKC_DATATYPES.Var450TabTyp;
8381     in_attribute8 OKC_DATATYPES.Var450TabTyp;
8382     in_attribute9 OKC_DATATYPES.Var450TabTyp;
8383     in_attribute10 OKC_DATATYPES.Var450TabTyp;
8384     in_attribute11 OKC_DATATYPES.Var450TabTyp;
8385     in_attribute12 OKC_DATATYPES.Var450TabTyp;
8386     in_attribute13 OKC_DATATYPES.Var450TabTyp;
8387     in_attribute14 OKC_DATATYPES.Var450TabTyp;
8388     in_attribute15 OKC_DATATYPES.Var450TabTyp;
8389     in_created_by OKC_DATATYPES.NumberTabTyp;
8390     in_creation_date OKC_DATATYPES.DateTabTyp;
8391     in_last_updated_by OKC_DATATYPES.NumberTabTyp;
8392     in_last_update_date OKC_DATATYPES.DateTabTyp;
8393     in_last_update_login OKC_DATATYPES.NumberTabTyp;
8394   -- GCHADHA --
8395   -- BUG 3941485 --
8396     in_document_id OKC_DATATYPES.NumberTabTyp;
8397   -- END GCHADHA --
8398 -- R12 Data Model Changes 4485150 Start
8399     in_approval_type OKC_DATATYPES.Var450TabTyp;
8400     in_term_cancel_source OKC_DATATYPES.Var450TabTyp;
8401     in_payment_instruction_type OKC_DATATYPES.Var450TabTyp;
8402 -- R12 Data Model Changes 4485150 End
8403 
8404     i NUMBER := p_chrv_tbl.FIRST;
8405     j NUMBER := 0;
8406 
8407     BEGIN
8408     --Initializing return status
8409         x_return_status := OKC_API.G_RET_STS_SUCCESS;
8410         IF (l_debug = 'Y') THEN
8411             okc_debug.Set_Indentation('OKC_CHR_PVT');
8412             okc_debug.LOG('23400: Entered INSERT_ROW_UPG', 2);
8413         END IF;
8414 
8415 
8416     -- pkoganti   08/26/2000
8417     -- replace for loop with while loop to handle
8418     -- gaps in pl/sql table indexes.
8419     -- Example:
8420     --   consider a pl/sql table(A) with the following elements
8421     --   A(1) = 10
8422     --   A(2) = 20
8423     --   A(6) = 30
8424     --   A(7) = 40
8425     --
8426     --  The for loop was erroring for indexes 3,4,5, the while loop
8427     -- along with the NEXT operator would handle the missing indexes
8428     -- with out causing the API to fail.
8429     --
8430         WHILE i IS NOT NULL
8431             LOOP
8432 
8433             j := j + 1;
8434 
8435             in_id (j) := p_chrv_tbl(i).id;
8436     -- GCHADHA --
8437     -- 3941485 --
8438             in_document_id (j) := p_chrv_tbl(i).document_id;
8439     -- END GCHADHA --
8440             in_object_version_number (j) := p_chrv_tbl(i).object_version_number;
8441             in_sfwt_flag (j) := p_chrv_tbl(i).sfwt_flag;
8442             in_chr_id_response (j) := p_chrv_tbl(i).chr_id_response;
8443             in_chr_id_award (j) := p_chrv_tbl(i).chr_id_award;
8444             in_inv_organization_id (j) := p_chrv_tbl(i).inv_organization_id;
8445             in_sts_code (j) := p_chrv_tbl(i).sts_code;
8446             in_qcl_id (j) := p_chrv_tbl(i).qcl_id;
8447             in_scs_code (j) := p_chrv_tbl(i).scs_code;
8448             in_contract_number (j) := p_chrv_tbl(i).contract_number;
8449             in_currency_code (j) := p_chrv_tbl(i).currency_code;
8450             in_contract_number_modifier (j) := p_chrv_tbl(i).contract_number_modifier;
8451             in_archived_yn (j) := p_chrv_tbl(i).archived_yn;
8452             in_deleted_yn (j) := p_chrv_tbl(i).deleted_yn;
8453             in_cust_po_number_req_yn (j) := p_chrv_tbl(i).cust_po_number_req_yn;
8454             in_pre_pay_req_yn (j) := p_chrv_tbl(i).pre_pay_req_yn;
8455             in_cust_po_number (j) := p_chrv_tbl(i).cust_po_number;
8456             in_short_description (j) := p_chrv_tbl(i).short_description;
8457             in_comments (j) := p_chrv_tbl(i).comments;
8458             in_description (j) := p_chrv_tbl(i).description;
8459             in_dpas_rating (j) := p_chrv_tbl(i).dpas_rating;
8460             in_cognomen (j) := p_chrv_tbl(i).cognomen;
8461             in_template_yn (j) := p_chrv_tbl(i).template_yn;
8462             in_template_used (j) := p_chrv_tbl(i).template_used;
8463             in_date_approved (j) := p_chrv_tbl(i).date_approved;
8464             in_datetime_cancelled (j) := p_chrv_tbl(i).datetime_cancelled;
8465             in_auto_renew_days (j) := p_chrv_tbl(i).auto_renew_days;
8466             in_date_issued (j) := p_chrv_tbl(i).date_issued;
8467             in_datetime_responded (j) := p_chrv_tbl(i).datetime_responded;
8468             in_non_response_reason (j) := p_chrv_tbl(i).non_response_reason;
8469             in_non_response_explain (j) := p_chrv_tbl(i).non_response_explain;
8470             in_rfp_type (j) := p_chrv_tbl(i).rfp_type;
8471             in_chr_type (j) := p_chrv_tbl(i).chr_type;
8472             in_keep_on_mail_list (j) := p_chrv_tbl(i).keep_on_mail_list;
8473             in_set_aside_reason (j) := p_chrv_tbl(i).set_aside_reason;
8474             in_set_aside_percent (j) := p_chrv_tbl(i).set_aside_percent;
8475             in_response_copies_req (j) := p_chrv_tbl(i).response_copies_req;
8476             in_date_close_projected (j) := p_chrv_tbl(i).date_close_projected;
8477             in_datetime_proposed (j) := p_chrv_tbl(i).datetime_proposed;
8478             in_date_signed (j) := p_chrv_tbl(i).date_signed;
8479             in_date_terminated (j) := p_chrv_tbl(i).date_terminated;
8480             in_date_renewed (j) := p_chrv_tbl(i).date_renewed;
8481             in_trn_code (j) := p_chrv_tbl(i).trn_code;
8482             in_start_date (j) := p_chrv_tbl(i).start_date;
8483             in_end_date (j) := p_chrv_tbl(i).end_date;
8484             in_authoring_org_id (j) := p_chrv_tbl(i).authoring_org_id;
8485             in_org_id (j) := p_chrv_tbl(i).org_id; --mmadhavi added for MOAC
8486             in_buy_or_sell (j) := p_chrv_tbl(i).buy_or_sell;
8487             in_issue_or_receive (j) := p_chrv_tbl(i).issue_or_receive;
8488             in_estimated_amount (j) := p_chrv_tbl(i).estimated_amount;
8489             in_estimated_amount_renewed (j) := p_chrv_tbl(i).estimated_amount_renewed;
8490             in_currency_code_renewed (j) := p_chrv_tbl(i).currency_code_renewed;
8491             in_upg_orig_system_ref (j) := p_chrv_tbl(i).upg_orig_system_ref;
8492             in_upg_orig_system_ref_id (j) := p_chrv_tbl(i).upg_orig_system_ref_id;
8493             in_application_id (j) := p_chrv_tbl(i).application_id;
8494             in_orig_system_source_code (j) := p_chrv_tbl(i).orig_system_source_code;
8495             in_orig_system_id1 (j) := p_chrv_tbl(i).orig_system_id1;
8496             in_orig_system_reference1 (j) := p_chrv_tbl(i).orig_system_reference1;
8497             in_program_id (j) := p_chrv_tbl(i). program_id;
8498             in_request_id (j) := p_chrv_tbl(i).request_id;
8499             in_program_update_date (j) := p_chrv_tbl(i).program_update_date;
8500             in_program_application_id (j) := p_chrv_tbl(i).program_application_id;
8501             in_price_list_id (j) := p_chrv_tbl(i).price_list_id;
8502             in_pricing_date (j) := p_chrv_tbl(i).pricing_date;
8503             in_sign_by_date (j) := p_chrv_tbl(i).sign_by_date;
8504             in_total_line_list_price (j) := p_chrv_tbl(i).total_line_list_price;
8505             in_user_estimated_amount (j) := p_chrv_tbl(i).user_estimated_amount;
8506             in_governing_contract_yn (j) := p_chrv_tbl(i).governing_contract_yn;
8507             in_attribute_category (j) := p_chrv_tbl(i).attribute_category;
8508             in_attribute1 (j) := p_chrv_tbl(i).attribute1;
8509             in_attribute2 (j) := p_chrv_tbl(i).attribute2;
8510             in_attribute3 (j) := p_chrv_tbl(i).attribute3;
8511             in_attribute4 (j) := p_chrv_tbl(i).attribute4;
8512             in_attribute5 (j) := p_chrv_tbl(i).attribute5;
8513             in_attribute6 (j) := p_chrv_tbl(i).attribute6;
8514             in_attribute7 (j) := p_chrv_tbl(i).attribute7;
8515             in_attribute8 (j) := p_chrv_tbl(i).attribute8;
8516             in_attribute9 (j) := p_chrv_tbl(i).attribute9;
8517             in_attribute10 (j) := p_chrv_tbl(i).attribute10;
8518             in_attribute11 (j) := p_chrv_tbl(i).attribute11;
8519             in_attribute12 (j) := p_chrv_tbl(i).attribute12;
8520             in_attribute13 (j) := p_chrv_tbl(i).attribute13;
8521             in_attribute14 (j) := p_chrv_tbl(i).attribute14;
8522             in_attribute15 (j) := p_chrv_tbl(i).attribute15;
8523             in_created_by (j) := p_chrv_tbl(i).created_by;
8524             in_creation_date (j) := p_chrv_tbl(i).creation_date;
8525             in_last_updated_by (j) := p_chrv_tbl(i).last_updated_by;
8526             in_last_update_date (j) := p_chrv_tbl(i).last_update_date;
8527             in_last_update_login (j) := p_chrv_tbl(i).last_update_login;
8528       --new columns to replace rules
8529             in_conversion_type (j) := p_chrv_tbl(i).conversion_type;
8530             in_conversion_rate (j) := p_chrv_tbl(i).conversion_rate;
8531             in_conversion_rate_date (j) := p_chrv_tbl(i).conversion_rate_date;
8532             in_conversion_euro_rate (j) := p_chrv_tbl(i).conversion_euro_rate;
8533             in_cust_acct_id (j) := p_chrv_tbl(i).cust_acct_id;
8534             in_bill_to_site_use_id (j) := p_chrv_tbl(i).bill_to_site_use_id;
8535             in_inv_rule_id (j) := p_chrv_tbl(i).inv_rule_id;
8536             in_renewal_type_code (j) := p_chrv_tbl(i).renewal_type_code;
8537             in_renewal_notify_to (j) := p_chrv_tbl(i).renewal_notify_to;
8538             in_renewal_end_date (j) := p_chrv_tbl(i).renewal_end_date;
8539             in_ship_to_site_use_id (j) := p_chrv_tbl(i).ship_to_site_use_id;
8540             in_payment_term_id (j) := p_chrv_tbl(i).payment_term_id;
8541 -- R12 Data Model Changes 4485150 End
8542             in_approval_type (j) := p_chrv_tbl(i).approval_type ;
8543             in_term_cancel_source (j) := p_chrv_tbl(i).term_cancel_source ;
8544             in_payment_instruction_type (j) := p_chrv_tbl(i).payment_instruction_type;
8545 -- R12 Data Model Changes 4485150 End
8546             i := p_chrv_tbl.NEXT(i);
8547         END LOOP;
8548 
8549         FORALL i IN 1..l_tabsize
8550         INSERT
8551           INTO OKC_K_HEADERS_ALL_B --mmadhavi changed to _ALL for MOAC
8552           (
8553            id,
8554            -- GCHADHA --
8555            -- BUG 3941485 --
8556            document_id,
8557            -- END GCHADHA --
8558            contract_number,
8559            authoring_org_id,
8560            org_id,  --mmadhavi added for MOAC
8561            contract_number_modifier,
8562            chr_id_response,
8563            chr_id_award,
8564            sts_code,
8565            qcl_id,
8566            scs_code,
8567            trn_code,
8568            currency_code,
8569            archived_yn,
8570            deleted_yn,
8571            template_yn,
8572            chr_type,
8573            object_version_number,
8574            created_by,
8575            creation_date,
8576            last_updated_by,
8577            last_update_date,
8578            cust_po_number_req_yn,
8579            pre_pay_req_yn,
8580            cust_po_number,
8581            dpas_rating,
8582            template_used,
8583            date_approved,
8584            datetime_cancelled,
8585            auto_renew_days,
8586            date_issued,
8587            datetime_responded,
8588            rfp_type,
8589            keep_on_mail_list,
8590            set_aside_percent,
8591            response_copies_req,
8592            date_close_projected,
8593            datetime_proposed,
8594            date_signed,
8595            date_terminated,
8596            date_renewed,
8597            start_date,
8598            end_date,
8599            buy_or_sell,
8600            issue_or_receive,
8601            last_update_login,
8602            upg_orig_system_ref,
8603            upg_orig_system_ref_id,
8604            application_id,
8605            orig_system_source_code,
8606            orig_system_id1,
8607            orig_system_reference1,
8608            program_id,
8609            request_id,
8610            program_update_date,
8611            program_application_id,
8612            price_list_id,
8613            pricing_date,
8614            sign_by_date,
8615            total_line_list_price,
8616            user_estimated_amount,
8617            governing_contract_yn,
8618            attribute_category,
8619            attribute1,
8620            attribute2,
8621            attribute3,
8622            attribute4,
8623            attribute5,
8624            attribute6,
8625            attribute7,
8626            attribute8,
8627            attribute9,
8628            attribute10,
8629            attribute11,
8630            attribute12,
8631            attribute13,
8632            attribute14,
8633            attribute15,
8634            estimated_amount,
8635            inv_organization_id,
8636            estimated_amount_renewed,
8637            currency_code_renewed,
8638            -- new columns to replace rules
8639            conversion_type,
8640            conversion_rate,
8641            conversion_rate_date,
8642            conversion_euro_rate,
8643            cust_acct_id,
8644            bill_to_site_use_id,
8645            inv_rule_id,
8646            renewal_type_code,
8647            renewal_notify_to,
8648            renewal_end_date,
8649            ship_to_site_use_id,
8650            payment_term_id,
8651            -- R12 Data Model Changes 4485150 End
8652            approval_type,
8653            term_cancel_source,
8654            payment_instruction_type
8655            -- R12 Data Model Changes 4485150 End
8656            )
8657          VALUES (
8658                  in_id(i),
8659                  -- GCHADHA --
8660                  -- 3941485 --
8661                  in_document_id(i),
8662                  -- END GCHADHA --
8663                  in_contract_number(i),
8664                  in_authoring_org_id(i),
8665                  in_org_id(i),  --mmadhavi added for MOAC
8666                  in_contract_number_modifier(i),
8667                  in_chr_id_response(i),
8668                  in_chr_id_award(i),
8669                  in_sts_code(i),
8670                  in_qcl_id(i),
8671                  in_scs_code(i),
8672                  in_trn_code(i),
8673                  in_currency_code(i),
8674                  in_archived_yn(i),
8675                  in_deleted_yn(i),
8676                  in_template_yn(i),
8677                  in_chr_type(i),
8678                  in_object_version_number(i),
8679                  in_created_by(i),
8680                  in_creation_date(i),
8681                  in_last_updated_by(i),
8682                  in_last_update_date(i),
8683                  in_cust_po_number_req_yn(i),
8684                  in_pre_pay_req_yn(i),
8685                  in_cust_po_number(i),
8686                  in_dpas_rating(i),
8687                  in_template_used(i),
8688                  in_date_approved(i),
8689                  in_datetime_cancelled(i),
8690                  in_auto_renew_days(i),
8691                  in_date_issued(i),
8692                  in_datetime_responded(i),
8693                  in_rfp_type(i),
8694                  in_keep_on_mail_list(i),
8695                  in_set_aside_percent(i),
8696                  in_response_copies_req(i),
8697                  in_date_close_projected(i),
8698                  in_datetime_proposed(i),
8699                  in_date_signed(i),
8700                  in_date_terminated(i),
8701                  in_date_renewed(i),
8702                  in_start_date(i),
8703                  in_end_date(i),
8704                  in_buy_or_sell(i),
8705                  in_issue_or_receive(i),
8706                  in_last_update_login(i),
8707                  in_upg_orig_system_ref(i),
8708                  in_upg_orig_system_ref_id(i),
8709                  in_application_id(i),
8710                  in_orig_system_source_code(i),
8711                  in_orig_system_id1(i),
8712                  in_orig_system_reference1(i),
8713                  in_program_id(i),
8714                  in_request_id(i),
8715                  in_program_update_date(i),
8716                  in_program_application_id(i),
8717                  in_price_list_id(i),
8718                  in_pricing_date(i),
8719                  in_sign_by_date(i),
8720                  in_total_line_list_price(i),
8721                  in_user_estimated_amount(i),
8722                  in_governing_contract_yn(i),
8723                  in_attribute_category(i),
8724                  in_attribute1(i),
8725                  in_attribute2(i),
8726                  in_attribute3(i),
8727                  in_attribute4(i),
8728                  in_attribute5(i),
8729                  in_attribute6(i),
8730                  in_attribute7(i),
8731                  in_attribute8(i),
8732                  in_attribute9(i),
8733                  in_attribute10(i),
8734                  in_attribute11(i),
8735                  in_attribute12(i),
8736                  in_attribute13(i),
8737                  in_attribute14(i),
8738                  in_attribute15(i),
8739                  in_estimated_amount(i),
8740                  in_inv_organization_id(i),
8741                  in_estimated_amount_renewed(i),
8742                  in_currency_code_renewed(i),
8743                  --new columns to replace rules
8744                  in_conversion_type(i),
8745                  in_conversion_rate(i),
8746                  in_conversion_rate_date(i),
8747                  in_conversion_euro_rate(i),
8748                  in_cust_acct_id(i),
8749                  in_bill_to_site_use_id(i),
8750                  in_inv_rule_id(i),
8751                  in_renewal_type_code(i),
8752                  in_renewal_notify_to(i),
8753                  in_renewal_end_date(i),
8754                  in_ship_to_site_use_id(i),
8755                  in_payment_term_id(i),
8756                  -- R12 Data Model Changes 4485150 End
8757                  in_approval_type(i),
8758                  in_term_cancel_source(i),
8759                  in_payment_instruction_type(i)
8760                  -- R12 Data Model Changes 4485150 End
8761                  );
8762 
8763         FOR lang_i IN OKC_UTIL.g_language_code.FIRST..OKC_UTIL.g_language_code.LAST LOOP
8764             FORALL i IN 1..l_tabsize
8765             INSERT INTO OKC_K_HEADERS_TL(
8766                                          id,
8767                                          language,
8768                                          source_lang,
8769                                          sfwt_flag,
8770                                          short_description,
8771                                          comments,
8772                                          description,
8773                                          cognomen,
8774                                          non_response_reason,
8775                                          non_response_explain,
8776                                          set_aside_reason,
8777                                          created_by,
8778                                          creation_date,
8779                                          last_updated_by,
8780                                          last_update_date,
8781                                          last_update_login
8782                                          )
8783            VALUES (
8784                    in_id(i),
8785                    OKC_UTIL.g_language_code(lang_i),
8786                    l_source_lang,
8787                    in_sfwt_flag(i),
8788                    in_short_description(i),
8789                    in_comments(i),
8790                    in_description(i),
8791                    in_cognomen(i),
8792                    in_non_response_reason(i),
8793                    in_non_response_explain(i),
8794                    in_set_aside_reason(i),
8795                    in_created_by(i),
8796                    in_creation_date(i),
8797                    in_last_updated_by(i),
8798                    in_last_update_date(i),
8799                    in_last_update_login(i)
8800                    );
8801         END LOOP;
8802 
8803   -- Insert version numbers
8804         FORALL i IN 1..l_tabsize
8805         INSERT
8806           INTO OKC_K_VERS_NUMBERS
8807           (
8808            chr_id,
8809            major_version,
8810            minor_version,
8811            object_version_number,
8812            created_by,
8813            creation_date,
8814            last_updated_by,
8815            last_update_date,
8816            last_update_login
8817            )
8818          VALUES (
8819                  in_id(i),
8820                  0,
8821                  0,
8822                  in_object_version_number(i),
8823                  in_created_by(i),
8824                  in_creation_date(i),
8825                  in_last_updated_by(i),
8826                  in_last_update_date(i),
8827                  in_last_update_login(i)
8828                  );
8829 
8830         IF (l_debug = 'Y') THEN
8831             okc_debug.LOG('23500: Exiting INSERT_ROW_UPG', 2);
8832             okc_debug.Reset_Indentation;
8833         END IF;
8834 
8835 
8836     EXCEPTION
8837         WHEN OTHERS THEN
8838 
8839             IF (l_debug = 'Y') THEN
8840                 okc_debug.LOG('23600: Exiting INSERT_ROW_UPG:OTHERS Exception', 2);
8841                 okc_debug.Reset_Indentation;
8842             END IF;
8843     -- Store SQL error message on message stack
8844             OKC_API.SET_MESSAGE(
8845                                 p_app_name => G_APP_NAME,
8846                                 p_msg_name => G_UNEXPECTED_ERROR,
8847                                 p_token1 => G_SQLCODE_TOKEN,
8848                                 p_token1_value => SQLCODE,
8849                                 p_token2 => G_SQLERRM_TOKEN,
8850                                 p_token2_value => SQLERRM);
8851     -- notify caller of an error as UNEXPETED error
8852             x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8853 
8854    -- RAISE;
8855 
8856     END INSERT_ROW_UPG;
8857 
8858 --This function is called from versioning API OKC_VERSION_PVT
8859 --Old Location: OKCRVERB.pls
8860 --New Location: Base Table API
8861 
8862     FUNCTION create_version(
8863                             p_chr_id IN NUMBER,
8864                             p_major_version IN NUMBER
8865                             ) RETURN VARCHAR2 IS
8866 
8867     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
8868 
8869     BEGIN
8870 
8871         IF (l_debug = 'Y') THEN
8872             okc_debug.Set_Indentation('OKC_CHR_PVT');
8873             okc_debug.LOG('23700: Entered create_version', 2);
8874         END IF;
8875 
8876         INSERT INTO okc_k_headers_all_bh --mmadhavi changed to _ALL for MOAC
8877           (
8878            major_version,
8879            id,
8880            contract_number,
8881            authoring_org_id,
8882            org_id,  --mmadhavi added for MOAC
8883            contract_number_modifier,
8884            chr_id_response,
8885            chr_id_award,
8886            sts_code,
8887            qcl_id,
8888            scs_code,
8889            trn_code,
8890            currency_code,
8891            archived_yn,
8892            deleted_yn,
8893            template_yn,
8894            chr_type,
8895            object_version_number,
8896            created_by,
8897            creation_date,
8898            last_updated_by,
8899            last_update_date,
8900            cust_po_number_req_yn,
8901            pre_pay_req_yn,
8902            cust_po_number,
8903            dpas_rating,
8904            template_used,
8905            date_approved,
8906            datetime_cancelled,
8907            auto_renew_days,
8908            date_issued,
8909            datetime_responded,
8910            rfp_type,
8911            keep_on_mail_list,
8912            set_aside_percent,
8913            response_copies_req,
8914            date_close_projected,
8915            datetime_proposed,
8916            date_signed,
8917            date_terminated,
8918            date_renewed,
8919            start_date,
8920            end_date,
8921            buy_or_sell,
8922            issue_or_receive,
8923            last_update_login,
8924            application_id,
8925            orig_system_source_code,
8926            orig_system_id1,
8927            orig_system_reference1,
8928            upg_orig_system_ref,
8929            upg_orig_system_ref_id,
8930            program_id,
8931            request_id,
8932            program_update_date,
8933            program_application_id,
8934            price_list_id,
8935            pricing_date,
8936            sign_by_date,
8937            total_line_list_price,
8938            user_estimated_amount,
8939            governing_contract_yn,
8940            attribute_category,
8941            attribute1,
8942            attribute2,
8943            attribute3,
8944            attribute4,
8945            attribute5,
8946            attribute6,
8947            attribute7,
8948            attribute8,
8949            attribute9,
8950            attribute10,
8951            attribute11,
8952            attribute12,
8953            attribute13,
8954            attribute14,
8955            attribute15,
8956            estimated_amount,
8957            inv_organization_id,
8958            currency_code_renewed,
8959            estimated_amount_renewed,
8960            -- new columns to replace rules
8961            conversion_type,
8962            conversion_rate,
8963            conversion_rate_date,
8964            conversion_euro_rate,
8965            cust_acct_id,
8966            bill_to_site_use_id,
8967            inv_rule_id,
8968            renewal_type_code,
8969            renewal_notify_to,
8970            renewal_end_date,
8971            ship_to_site_use_id,
8972            payment_term_id,
8973            document_id,
8974            -- R12 Data Model Changes 4485150 End
8975            approval_type,
8976            term_cancel_source,
8977            payment_instruction_type,
8978            -- R12 Data Model Changes 4485150 End
8979 		 cancelled_amount -- LLC
8980            )
8981           SELECT
8982               p_major_version,
8983               id,
8984               contract_number,
8985               authoring_org_id,
8986               org_id,  --mmadhavi added for MOAC
8987               contract_number_modifier,
8988               chr_id_response,
8989               chr_id_award,
8990               sts_code,
8991               qcl_id,
8992               scs_code,
8993               trn_code,
8994               currency_code,
8995               archived_yn,
8996               deleted_yn,
8997               template_yn,
8998               chr_type,
8999               object_version_number,
9000               created_by,
9001               creation_date,
9002               last_updated_by,
9003               last_update_date,
9004               cust_po_number_req_yn,
9005               pre_pay_req_yn,
9006               cust_po_number,
9007               dpas_rating,
9008               template_used,
9009               date_approved,
9010               datetime_cancelled,
9011               auto_renew_days,
9012               date_issued,
9013               datetime_responded,
9014               rfp_type,
9015               keep_on_mail_list,
9016               set_aside_percent,
9017               response_copies_req,
9018               date_close_projected,
9019               datetime_proposed,
9020               date_signed,
9021               date_terminated,
9022               date_renewed,
9023               start_date,
9024               end_date,
9025               buy_or_sell,
9026               issue_or_receive,
9027               last_update_login,
9028               application_id,
9029               orig_system_source_code,
9030               orig_system_id1,
9031               orig_system_reference1,
9032               upg_orig_system_ref,
9033               upg_orig_system_ref_id,
9034               program_id,
9035               request_id,
9036               program_update_date,
9037               program_application_id,
9038               price_list_id,
9039               pricing_date,
9040               sign_by_date,
9041               total_line_list_price,
9042              user_estimated_amount,
9043              governing_contract_yn,
9044               attribute_category,
9045               attribute1,
9046               attribute2,
9047               attribute3,
9048               attribute4,
9049               attribute5,
9050               attribute6,
9051               attribute7,
9052               attribute8,
9053               attribute9,
9054               attribute10,
9055               attribute11,
9056               attribute12,
9057               attribute13,
9058               attribute14,
9059               attribute15,
9060               estimated_amount,
9061               inv_organization_id,
9062               currency_code_renewed,
9063               estimated_amount_renewed,
9064 -- new columns to replace rules
9065               conversion_type,
9066               conversion_rate,
9067               conversion_rate_date,
9068               conversion_euro_rate,
9069               cust_acct_id,
9070               bill_to_site_use_id,
9071               inv_rule_id,
9072               renewal_type_code,
9073               renewal_notify_to,
9074               renewal_end_date,
9075               ship_to_site_use_id,
9076               payment_term_id,
9077               document_id,
9078 -- R12 Data Model Changes 4485150 Start
9079               approval_type,
9080               term_cancel_source,
9081               payment_instruction_type,
9082 		    cancelled_amount -- LLC
9083 -- R12 Data Model Changes 4485150 End
9084           FROM okc_k_headers_all_b --mamdhavi changed to _ALL for MOAC
9085          WHERE id = p_chr_id;
9086 
9087 --------------------------------
9088 -- Versioning TL Table
9089 --------------------------------
9090 
9091         INSERT INTO okc_k_headers_tlh
9092           (
9093            major_version,
9094            id,
9095            language,
9096            source_lang,
9097            sfwt_flag,
9098            short_description,
9099            comments,
9100            description,
9101            cognomen,
9102            non_response_reason,
9103            non_response_explain,
9104            set_aside_reason,
9105            created_by,
9106            creation_date,
9107            last_updated_by,
9108            last_update_date,
9109            last_update_login
9110            )
9111           SELECT
9112               p_major_version,
9113               id,
9114               language,
9115               source_lang,
9116               sfwt_flag,
9117               short_description,
9118               comments,
9119               description,
9120               cognomen,
9121               non_response_reason,
9122               non_response_explain,
9123               set_aside_reason,
9124               created_by,
9125               creation_date,
9126               last_updated_by,
9127               last_update_date,
9128               last_update_login
9129           FROM okc_k_headers_tl
9130          WHERE id = p_chr_id;
9131 
9132         RETURN l_return_status;
9133         IF (l_debug = 'Y') THEN
9134             okc_debug.LOG('23800: Exiting create_version', 2);
9135             okc_debug.Reset_Indentation;
9136         END IF;
9137 
9138 
9139     EXCEPTION
9140        -- other appropriate handlers
9141         WHEN OTHERS THEN
9142 
9143             IF (l_debug = 'Y') THEN
9144                 okc_debug.LOG('23900: Exiting create_version:OTHERS Exception', 2);
9145                 okc_debug.Reset_Indentation;
9146             END IF;
9147 
9148        -- store SQL error message on message stack
9149             OKC_API.SET_MESSAGE(p_app_name => okc_version_pvt.G_APP_NAME,
9150                                 p_msg_name => okc_version_pvt.G_UNEXPECTED_ERROR,
9151                                 p_token1 => okc_version_pvt.G_SQLCODE_TOKEN,
9152                                 p_token1_value => SQLCODE,
9153                                 p_token2 => okc_version_pvt.G_SQLERRM_TOKEN,
9154                                 p_token2_value => SQLERRM);
9155 
9156        -- notify  UNEXPECTED error
9157             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9158             RETURN l_return_status;
9159 
9160     END create_version;
9161 
9162 --This Function is called from Versioning API OKC_VERSION_PVT
9163 --Old Location:OKCRVERB.pls
9164 --New Location:Base Table API
9165 
9166 
9167     FUNCTION restore_version(
9168                              p_chr_id IN NUMBER,
9169                              p_major_version IN NUMBER
9170                              ) RETURN VARCHAR2 IS
9171 
9172     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
9173 
9174     BEGIN
9175 
9176         IF (l_debug = 'Y') THEN
9177             okc_debug.Set_Indentation('OKC_CHR_PVT');
9178             okc_debug.LOG('24000: Entered restore_version', 2);
9179         END IF;
9180 
9181         INSERT INTO okc_k_headers_tl
9182           (
9183            id,
9184            language,
9185            source_lang,
9186            sfwt_flag,
9187            short_description,
9188            comments,
9189            description,
9190            cognomen,
9191            non_response_reason,
9192            non_response_explain,
9193            set_aside_reason,
9194            created_by,
9195            creation_date,
9196            last_updated_by,
9197            last_update_date,
9198            last_update_login
9199            )
9200           SELECT
9201               id,
9202               language,
9203               source_lang,
9204               sfwt_flag,
9205               short_description,
9206               comments,
9207               description,
9208               cognomen,
9209               non_response_reason,
9210               non_response_explain,
9211               set_aside_reason,
9212               created_by,
9213               creation_date,
9214               last_updated_by,
9215               last_update_date,
9216               last_update_login
9217           FROM okc_k_headers_tlh
9218         WHERE id = p_chr_id
9219           AND major_version = p_major_version;
9220 
9221 --------------------------------------
9222 -- Restore Base Table
9223 --------------------------------------
9224 
9225         INSERT INTO okc_k_headers_all_b --mmadhavi changed to _ALL for MOAC
9226           (
9227            id,
9228            contract_number,
9229            authoring_org_id,
9230            org_id,  --mmadhavi added for MOAC
9231            contract_number_modifier,
9232            chr_id_response,
9233            chr_id_award,
9234            sts_code,
9235            qcl_id,
9236            scs_code,
9237            trn_code,
9238            currency_code,
9239            archived_yn,
9240            deleted_yn,
9241            template_yn,
9242            chr_type,
9243            object_version_number,
9244            created_by,
9245            creation_date,
9246            last_updated_by,
9247            last_update_date,
9248            cust_po_number_req_yn,
9249            pre_pay_req_yn,
9250            cust_po_number,
9251            dpas_rating,
9252            template_used,
9253            date_approved,
9254            datetime_cancelled,
9255            auto_renew_days,
9256            date_issued,
9257            datetime_responded,
9258            rfp_type,
9259            keep_on_mail_list,
9260            set_aside_percent,
9261            response_copies_req,
9262            date_close_projected,
9263            datetime_proposed,
9264            date_signed,
9265            date_terminated,
9266            date_renewed,
9267            start_date,
9268            end_date,
9269            buy_or_sell,
9270            issue_or_receive,
9271            last_update_login,
9272            application_id,
9273            orig_system_source_code,
9274            orig_system_id1,
9275            orig_system_reference1,
9276            upg_orig_system_ref,
9277            upg_orig_system_ref_id,
9278            program_id,
9279            request_id,
9280            program_update_date,
9281            program_application_id,
9282            price_list_id,
9283            pricing_date,
9284            sign_by_date,
9285            total_line_list_price,
9286            user_estimated_amount,
9287            governing_contract_yn,
9288            attribute_category,
9289            attribute1,
9290            attribute2,
9291            attribute3,
9292            attribute4,
9293            attribute5,
9294            attribute6,
9295            attribute7,
9296            attribute8,
9297            attribute9,
9298            attribute10,
9299            attribute11,
9300            attribute12,
9301            attribute13,
9302            attribute14,
9303            attribute15,
9304            estimated_amount,
9305            inv_organization_id,
9306            currency_code_renewed,
9307            estimated_amount_renewed,
9308            -- new columns to replace rules
9309            conversion_type,
9310            conversion_rate,
9311            conversion_rate_date,
9312            conversion_euro_rate,
9313            cust_acct_id,
9314            bill_to_site_use_id,
9315            inv_rule_id,
9316            renewal_type_code,
9317            renewal_notify_to,
9318            renewal_end_date,
9319            ship_to_site_use_id,
9320            payment_term_id,
9321            document_id,
9322            -- R12 Data Model Changes 4485150 Start
9323            approval_type,
9324            term_cancel_source,
9325            payment_instruction_type,
9326 		 cancelled_amount -- LLC
9327            -- R12 Data Model Changes 4485150 Start
9328            )
9329           SELECT
9330               id,
9331               contract_number,
9332               authoring_org_id,
9333               org_id,  --mmadhavi added for MOAC
9334               contract_number_modifier,
9335               chr_id_response,
9336               chr_id_award,
9337               sts_code,
9338               qcl_id,
9339               scs_code,
9340               trn_code,
9341               currency_code,
9342               archived_yn,
9343               deleted_yn,
9344               template_yn,
9345               chr_type,
9346               object_version_number,
9347               created_by,
9348               creation_date,
9349               last_updated_by,
9350               last_update_date,
9351               cust_po_number_req_yn,
9352               pre_pay_req_yn,
9353               cust_po_number,
9354               dpas_rating,
9355               template_used,
9356               date_approved,
9357               datetime_cancelled,
9358               auto_renew_days,
9359               date_issued,
9360               datetime_responded,
9361               rfp_type,
9362               keep_on_mail_list,
9363               set_aside_percent,
9364               response_copies_req,
9365               date_close_projected,
9366               datetime_proposed,
9367               date_signed,
9368               date_terminated,
9369               date_renewed,
9370               start_date,
9371               end_date,
9372               buy_or_sell,
9373               issue_or_receive,
9374               last_update_login,
9375               application_id,
9376               orig_system_source_code,
9377               orig_system_id1,
9378               orig_system_reference1,
9379               upg_orig_system_ref,
9380               upg_orig_system_ref_id,
9381               program_id,
9382               request_id,
9383               program_update_date,
9384               program_application_id,
9385               price_list_id,
9386               pricing_date,
9387               sign_by_date,
9388               total_line_list_price,
9389              user_estimated_amount,
9390              governing_contract_yn,
9391               attribute_category,
9392               attribute1,
9393               attribute2,
9394               attribute3,
9395               attribute4,
9396               attribute5,
9397               attribute6,
9398               attribute7,
9399               attribute8,
9400               attribute9,
9401               attribute10,
9402               attribute11,
9403               attribute12,
9404               attribute13,
9405               attribute14,
9406               attribute15,
9407               estimated_amount,
9408               inv_organization_id,
9409               currency_code_renewed,
9410               estimated_amount_renewed,
9411               conversion_type,
9412               conversion_rate,
9413               conversion_rate_date,
9414               conversion_euro_rate,
9415               cust_acct_id,
9416               bill_to_site_use_id,
9417               inv_rule_id,
9418               renewal_type_code,
9419               renewal_notify_to,
9420               renewal_end_date,
9421               ship_to_site_use_id,
9422               payment_term_id,
9423               document_id,
9424 -- R12 data Model Changes 4485150 Start
9425               approval_type,
9426               term_cancel_source,
9427               payment_instruction_type,
9428 		    cancelled_amount -- LLC
9429 -- R12 data Model Changes 4485150 End
9430           FROM okc_k_headers_all_bh --mmadhavi changed to _ALL for MOAC
9431         WHERE id = p_chr_id
9432           AND major_version = p_major_version;
9433 
9434         RETURN l_return_status;
9435         IF (l_debug = 'Y') THEN
9436             okc_debug.LOG('24100: Exiting restore_version', 2);
9437             okc_debug.Reset_Indentation;
9438         END IF;
9439 
9440 
9441     EXCEPTION
9442        -- other appropriate handlers
9443         WHEN OTHERS THEN
9444 
9445             IF (l_debug = 'Y') THEN
9446                 okc_debug.LOG('24200: Exiting restore_version:OTHERS Exception', 2);
9447                 okc_debug.Reset_Indentation;
9448             END IF;
9449 
9450        -- store SQL error message on message stack
9451             OKC_API.SET_MESSAGE(p_app_name => okc_version_pvt.G_APP_NAME,
9452                                 p_msg_name => okc_version_pvt.G_UNEXPECTED_ERROR,
9453                                 p_token1 => okc_version_pvt.G_SQLCODE_TOKEN,
9454                                 p_token1_value => SQLCODE,
9455                                 p_token2 => okc_version_pvt.G_SQLERRM_TOKEN,
9456                                 p_token2_value => SQLERRM);
9457 
9458        -- notify  UNEXPECTED error
9459             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9460             RETURN l_return_status;
9461 
9462     END restore_version;
9463 
9464 
9465 
9466 END OKC_CHR_PVT;