DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AGN_PVT

Source


1 PACKAGE BODY Okl_Agn_Pvt AS
2 /* $Header: OKLSAGNB.pls 120.4 2007/02/06 11:32:18 gkhuntet noship $ */
3   ---------------------------------------------------------------------------
4   -- FUNCTION get_seq_id
5   ---------------------------------------------------------------------------
6   FUNCTION get_seq_id RETURN NUMBER IS
7   BEGIN
8     RETURN(Okc_P_Util.raw_to_number(sys_guid()));
9   END get_seq_id;
10 
11   ---------------------------------------------------------------------------
12   -- PROCEDURE qc
13   ---------------------------------------------------------------------------
14   PROCEDURE qc IS
15   BEGIN
16     NULL;
17   END qc;
18 
19   ---------------------------------------------------------------------------
20   -- PROCEDURE change_version
21   ---------------------------------------------------------------------------
22   PROCEDURE change_version IS
23   BEGIN
24     NULL;
25   END change_version;
26 
27   ---------------------------------------------------------------------------
28   -- PROCEDURE api_copy
29   ---------------------------------------------------------------------------
30   PROCEDURE api_copy IS
31   BEGIN
32     NULL;
33   END api_copy;
34 
35   ---------------------------------------------------------------------------
36   -- FUNCTION get_rec for: OKL_ACCRUAL_GNRTNS
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_agn_rec                      IN agn_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN agn_rec_type IS
42     CURSOR okl_accrual_gnrtns_pk_csr (p_id                 IN NUMBER) IS
43     SELECT
44             ID,
45             LINE_NUMBER,
46             VERSION,
47             ARO_CODE,
48             ARLO_CODE,
49             ACRO_CODE,
50             RIGHT_OPERAND_LITERAL,
51             OBJECT_VERSION_NUMBER,
52             LEFT_PARENTHESES,
53             RIGHT_PARENTHESES,
54             FROM_DATE,
55             TO_DATE,
56             ORG_ID,
57             CREATED_BY,
58             CREATION_DATE,
59             LAST_UPDATED_BY,
60             LAST_UPDATE_DATE,
61             LAST_UPDATE_LOGIN
62       FROM Okl_Accrual_Gnrtns
63      WHERE okl_accrual_gnrtns.id = p_id;
64     l_okl_accrual_gnrtns_pk        okl_accrual_gnrtns_pk_csr%ROWTYPE;
65     l_agn_rec                      agn_rec_type;
66   BEGIN
67     x_no_data_found := TRUE;
68     -- Get current database values
69     OPEN okl_accrual_gnrtns_pk_csr (p_agn_rec.id);
70     FETCH okl_accrual_gnrtns_pk_csr INTO
71               l_agn_rec.ID,
72               l_agn_rec.LINE_NUMBER,
73               l_agn_rec.VERSION,
74               l_agn_rec.ARO_CODE,
75               l_agn_rec.ARLO_CODE,
76               l_agn_rec.ACRO_CODE,
77               l_agn_rec.RIGHT_OPERAND_LITERAL,
78               l_agn_rec.OBJECT_VERSION_NUMBER,
79               l_agn_rec.LEFT_PARENTHESES,
80               l_agn_rec.RIGHT_PARENTHESES,
81               l_agn_rec.FROM_DATE,
82               l_agn_rec.TO_DATE,
83               l_agn_rec.ORG_ID,
84               l_agn_rec.CREATED_BY,
85               l_agn_rec.CREATION_DATE,
86               l_agn_rec.LAST_UPDATED_BY,
87               l_agn_rec.LAST_UPDATE_DATE,
88               l_agn_rec.LAST_UPDATE_LOGIN;
89     x_no_data_found := okl_accrual_gnrtns_pk_csr%NOTFOUND;
90     CLOSE okl_accrual_gnrtns_pk_csr;
91     RETURN(l_agn_rec);
92   END get_rec;
93 
94   FUNCTION get_rec (
95     p_agn_rec                      IN agn_rec_type
96   ) RETURN agn_rec_type IS
97     l_row_notfound                 BOOLEAN := TRUE;
98   BEGIN
99     RETURN(get_rec(p_agn_rec, l_row_notfound));
100   END get_rec;
101   ---------------------------------------------------------------------------
102   -- FUNCTION get_rec for: OKL_ACCRUAL_GNRTNS_V
103   ---------------------------------------------------------------------------
104   FUNCTION get_rec (
105     p_agnv_rec                     IN agnv_rec_type,
106     x_no_data_found                OUT NOCOPY BOOLEAN
107   ) RETURN agnv_rec_type IS
108     CURSOR okl_agnv_pk_csr (p_id                 IN NUMBER) IS
109     SELECT
110             ID,
111             OBJECT_VERSION_NUMBER,
112             ARO_CODE,
113             ARLO_CODE,
114             ACRO_CODE,
115             LINE_NUMBER,
116             VERSION,
117             LEFT_PARENTHESES,
118             RIGHT_OPERAND_LITERAL,
119             RIGHT_PARENTHESES,
120             FROM_DATE,
121             TO_DATE,
122             ORG_ID,
123             CREATED_BY,
124             CREATION_DATE,
125             LAST_UPDATED_BY,
126             LAST_UPDATE_DATE,
127             LAST_UPDATE_LOGIN
128       FROM OKL_ACCRUAL_GNRTNS
129      WHERE OKL_ACCRUAL_GNRTNS.id = p_id;
130     l_okl_agnv_pk                  okl_agnv_pk_csr%ROWTYPE;
131     l_agnv_rec                     agnv_rec_type;
132   BEGIN
133     x_no_data_found := TRUE;
134     -- Get current database values
135     OPEN okl_agnv_pk_csr (p_agnv_rec.id);
136     FETCH okl_agnv_pk_csr INTO
137               l_agnv_rec.ID,
138               l_agnv_rec.OBJECT_VERSION_NUMBER,
139               l_agnv_rec.ARO_CODE,
140               l_agnv_rec.ARLO_CODE,
141               l_agnv_rec.ACRO_CODE,
142               l_agnv_rec.LINE_NUMBER,
143               l_agnv_rec.VERSION,
144               l_agnv_rec.LEFT_PARENTHESES,
145               l_agnv_rec.RIGHT_OPERAND_LITERAL,
146               l_agnv_rec.RIGHT_PARENTHESES,
147               l_agnv_rec.FROM_DATE,
148               l_agnv_rec.TO_DATE,
149               l_agnv_rec.ORG_ID,
150               l_agnv_rec.CREATED_BY,
151               l_agnv_rec.CREATION_DATE,
152               l_agnv_rec.LAST_UPDATED_BY,
153               l_agnv_rec.LAST_UPDATE_DATE,
154               l_agnv_rec.LAST_UPDATE_LOGIN;
155     x_no_data_found := okl_agnv_pk_csr%NOTFOUND;
156     CLOSE okl_agnv_pk_csr;
157     RETURN(l_agnv_rec);
158   END get_rec;
159 
160   FUNCTION get_rec (
161     p_agnv_rec                     IN agnv_rec_type
162   ) RETURN agnv_rec_type IS
163     l_row_notfound                 BOOLEAN := TRUE;
164   BEGIN
165     RETURN(get_rec(p_agnv_rec, l_row_notfound));
166   END get_rec;
167 
168   ----------------------------------------------------------
169   -- FUNCTION null_out_defaults for: OKL_ACCRUAL_GNRTNS_V --
170   ----------------------------------------------------------
171   FUNCTION null_out_defaults (
172     p_agnv_rec	IN agnv_rec_type
173   ) RETURN agnv_rec_type IS
174     l_agnv_rec	agnv_rec_type := p_agnv_rec;
175   BEGIN
176     IF (l_agnv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
177       l_agnv_rec.object_version_number := NULL;
178     END IF;
179     IF (l_agnv_rec.aro_code = Okc_Api.G_MISS_CHAR) THEN
180       l_agnv_rec.aro_code := NULL;
181     END IF;
182     IF (l_agnv_rec.arlo_code = Okc_Api.G_MISS_CHAR) THEN
183       l_agnv_rec.arlo_code := NULL;
184     END IF;
185     IF (l_agnv_rec.acro_code = Okc_Api.G_MISS_CHAR) THEN
186       l_agnv_rec.acro_code := NULL;
187     END IF;
188     IF (l_agnv_rec.line_number = Okc_Api.G_MISS_NUM) THEN
189       l_agnv_rec.line_number := NULL;
190     END IF;
191     IF (l_agnv_rec.version = Okc_Api.G_MISS_CHAR) THEN
192       l_agnv_rec.version := NULL;
193     END IF;
194     IF (l_agnv_rec.left_parentheses = Okc_Api.G_MISS_CHAR) THEN
195       l_agnv_rec.left_parentheses := NULL;
196     END IF;
197     IF (l_agnv_rec.right_operand_literal = Okc_Api.G_MISS_CHAR) THEN
198       l_agnv_rec.right_operand_literal := NULL;
199     END IF;
200     IF (l_agnv_rec.right_parentheses = Okc_Api.G_MISS_CHAR) THEN
201       l_agnv_rec.right_parentheses := NULL;
202     END IF;
203     IF (l_agnv_rec.from_date = Okc_Api.G_MISS_DATE) THEN
204       l_agnv_rec.from_date := NULL;
205     END IF;
206     IF (l_agnv_rec.TO_DATE = Okc_Api.G_MISS_DATE) THEN
207       l_agnv_rec.TO_DATE := NULL;
208     END IF;
209     IF (l_agnv_rec.org_id = Okc_Api.G_MISS_NUM) THEN
210       l_agnv_rec.org_id := NULL;
211     END IF;
212     IF (l_agnv_rec.created_by = Okc_Api.G_MISS_NUM) THEN
213       l_agnv_rec.created_by := NULL;
214     END IF;
215     IF (l_agnv_rec.creation_date = Okc_Api.G_MISS_DATE) THEN
216       l_agnv_rec.creation_date := NULL;
217     END IF;
218     IF (l_agnv_rec.last_updated_by = Okc_Api.G_MISS_NUM) THEN
219       l_agnv_rec.last_updated_by := NULL;
220     END IF;
221     IF (l_agnv_rec.last_update_date = Okc_Api.G_MISS_DATE) THEN
222       l_agnv_rec.last_update_date := NULL;
223     END IF;
224     IF (l_agnv_rec.last_update_login = Okc_Api.G_MISS_NUM) THEN
225       l_agnv_rec.last_update_login := NULL;
226     END IF;
227     RETURN(l_agnv_rec);
228   END null_out_defaults;
229 
230   /**** Commenting out nocopy generated code in favour of hand written code ********
231   ---------------------------------------------------------------------------
232   -- PROCEDURE Validate_Attributes
233   ---------------------------------------------------------------------------
234   --------------------------------------------------
235   -- Validate_Attributes for:OKL_ACCRUAL_GNRTNS_V --
236   --------------------------------------------------
237   FUNCTION Validate_Attributes (
238     p_agnv_rec IN  agnv_rec_type
239   ) RETURN VARCHAR2 IS
240     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
241   BEGIN
242     IF p_agnv_rec.id = OKC_API.G_MISS_NUM OR
243        p_agnv_rec.id IS NULL
244     THEN
245       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
246       l_return_status := OKC_API.G_RET_STS_ERROR;
247     ELSIF p_agnv_rec.object_version_number = OKC_API.G_MISS_NUM OR
248           p_agnv_rec.object_version_number IS NULL
249     THEN
250       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
251       l_return_status := OKC_API.G_RET_STS_ERROR;
252     ELSIF p_agnv_rec.aro_code = OKC_API.G_MISS_CHAR OR
253           p_agnv_rec.aro_code IS NULL
254     THEN
255       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'aro_code');
256       l_return_status := OKC_API.G_RET_STS_ERROR;
257     ELSIF p_agnv_rec.arlo_code = OKC_API.G_MISS_CHAR OR
258           p_agnv_rec.arlo_code IS NULL
259     THEN
260       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'arlo_code');
261       l_return_status := OKC_API.G_RET_STS_ERROR;
262     ELSIF p_agnv_rec.acro_code = OKC_API.G_MISS_CHAR OR
263           p_agnv_rec.acro_code IS NULL
264     THEN
265       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'acro_code');
266       l_return_status := OKC_API.G_RET_STS_ERROR;
267     ELSIF p_agnv_rec.line_number = OKC_API.G_MISS_NUM OR
268           p_agnv_rec.line_number IS NULL
269     THEN
270       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'line_number');
271       l_return_status := OKC_API.G_RET_STS_ERROR;
272     ELSIF p_agnv_rec.version = OKC_API.G_MISS_CHAR OR
273           p_agnv_rec.version IS NULL
274     THEN
275       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'version');
276       l_return_status := OKC_API.G_RET_STS_ERROR;
277     ELSIF p_agnv_rec.right_operand_literal = OKC_API.G_MISS_CHAR OR
278           p_agnv_rec.right_operand_literal IS NULL
279     THEN
280       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'right_operand_literal');
281       l_return_status := OKC_API.G_RET_STS_ERROR;
282     END IF;
283     RETURN(l_return_status);
284   END Validate_Attributes;
285 
286   ---------------------------------------------------------------------------
287   -- PROCEDURE Validate_Record
288   ---------------------------------------------------------------------------
289   ----------------------------------------------
290   -- Validate_Record for:OKL_ACCRUAL_GNRTNS_V --
291   ----------------------------------------------
292   FUNCTION Validate_Record (
293     p_agnv_rec IN agnv_rec_type
294   ) RETURN VARCHAR2 IS
295     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
296   BEGIN
297     RETURN (l_return_status);
298   END Validate_Record;
299 
300   **************** End Commenting generated code ***************************/
301 
302   /*************************** Hand Coded **********************************/
303 
304   ---------------------------------------------------------------------------
305   -- PROCEDURE Validate_Id
306   ---------------------------------------------------------------------------
307   -- Start of comments
308   --
309   -- Procedure Name  : Validate_Id
310   -- Description     :
311   -- Business Rules  :
312   -- Parameters      :
313   -- Version         : 1.0
314   -- End of comments
315   ---------------------------------------------------------------------------
316   PROCEDURE Validate_Id (x_return_status OUT NOCOPY  VARCHAR2
317 						,p_agnv_rec      IN   agnv_rec_type )
318   IS
319 
320   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
321 
322   BEGIN
323     -- initialize return status
324     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
325     -- check for data before processing
326     IF (p_agnv_rec.id IS NULL) OR
327        (p_agnv_rec.id = Okc_Api.G_MISS_NUM) THEN
328        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
329                           ,p_msg_name       => g_required_value
330                           ,p_token1         => g_col_name_token
331                           ,p_token1_value   => 'id');
332        x_return_status    := Okc_Api.G_RET_STS_ERROR;
333        RAISE G_EXCEPTION_HALT_VALIDATION;
334     END IF;
335 
336   EXCEPTION
337     WHEN G_EXCEPTION_HALT_VALIDATION THEN
338     -- no processing necessary; validation can continue
339     -- with the next column
340     NULL;
341 
342     WHEN OTHERS THEN
343       -- store SQL error message on message stack for caller
344       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
345                           p_msg_name     => g_unexpected_error,
346                           p_token1       => g_sqlcode_token,
347                           p_token1_value => SQLCODE,
348                           p_token2       => g_sqlerrm_token,
349                           p_token2_value => SQLERRM);
350 
351       -- notify caller of an UNEXPECTED error
352       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
353 
354   END Validate_Id;
355 
356   ---------------------------------------------------------------------------
357   -- PROCEDURE Validate_Object_Version_Number
358   ---------------------------------------------------------------------------
359   -- Start of comments
360   --
361   -- Procedure Name  : Validate_Object_Version_Number
362   -- Description     :
363   -- Business Rules  :
364   -- Parameters      :
365   -- Version         : 1.0
366   -- End of comments
367   ---------------------------------------------------------------------------
368   PROCEDURE Validate_Object_Version_Number(x_return_status OUT NOCOPY  VARCHAR2
369 										  ,p_agnv_rec      IN   agnv_rec_type )
370   IS
371 
372   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
373 
374   BEGIN
375     -- initialize return status
376     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
377     -- check for data before processing
378     IF (p_agnv_rec.object_version_number IS NULL) OR
379        (p_agnv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
380        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
381                           ,p_msg_name       => g_required_value
382                           ,p_token1         => g_col_name_token
383                           ,p_token1_value   => 'object_version_number');
384        x_return_status    := Okc_Api.G_RET_STS_ERROR;
385        RAISE G_EXCEPTION_HALT_VALIDATION;
386     END IF;
387 
388   EXCEPTION
389     WHEN G_EXCEPTION_HALT_VALIDATION THEN
390     -- no processing necessary; validation can continue
391     -- with the next column
392     NULL;
393 
394     WHEN OTHERS THEN
395       -- store SQL error message on message stack for caller
396       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
397                           p_msg_name     => g_unexpected_error,
398                           p_token1       => g_sqlcode_token,
399                           p_token1_value => SQLCODE,
400                           p_token2       => g_sqlerrm_token,
401                           p_token2_value => SQLERRM);
402 
403       -- notify caller of an UNEXPECTED error
404       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
405 
406   END Validate_Object_Version_Number;
407 
408   ---------------------------------------------------------------------------
409   -- PROCEDURE Validate_Aro_Code
410   ---------------------------------------------------------------------------
411   -- Start of comments
412   --
413   -- Procedure Name  : Validate_Aro_Code
414   -- Description     : Checks if code exists in FND_COMMON_LOOKUPS
415   -- Business Rules  :
416   -- Parameters      :
417   -- Version         : 1.0
418   -- End of comments
419   ---------------------------------------------------------------------------
420 
421    PROCEDURE Validate_Aro_Code(
422      	 x_return_status  OUT NOCOPY VARCHAR2
423 	,p_agnv_rec         IN agnv_rec_type   )
424    IS
425 
426 	l_dummy		VARCHAR2(1) := okl_api.g_true;
427 
428    BEGIN
429 	-- initialize return status
430   	x_return_status := Okc_Api.G_RET_STS_SUCCESS;
431     -- check for data before processing
432     IF (p_agnv_rec.aro_code IS NULL) OR
433        (p_agnv_rec.aro_code = Okc_Api.G_MISS_CHAR) THEN
434        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
435                           ,p_msg_name       => g_required_value
436                           ,p_token1         => g_col_name_token
437                           ,p_token1_value   => 'aro_code');
438        x_return_status    := Okc_Api.G_RET_STS_ERROR;
439        RAISE G_EXCEPTION_HALT_VALIDATION;
440 
441     END IF;
442 
443 	  l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE (
444 					p_lookup_type => 'OKL_ACCRUAL_RULE_OPERAND',
445 					p_lookup_code => p_agnv_rec.aro_code);
446 
447 	  IF (l_dummy = okl_api.g_false) THEN
448 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
449                         	p_msg_name     => g_invalid_value,
450                         	p_token1       => g_col_name_token,
451                         	p_token1_value => 'aro_code');
452           	x_return_status := Okc_Api.G_RET_STS_ERROR;
453 		RAISE G_EXCEPTION_HALT_VALIDATION;
454 	  END IF;
455     EXCEPTION
456 		WHEN G_EXCEPTION_HALT_VALIDATION THEN
457     		-- no processing necessary;  validation can continue
458     		-- with the next column
459     		NULL;
460 
461 		 WHEN OTHERS THEN
462     		-- store SQL error message on message stack for caller
463     		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
464                         	    p_msg_name     => g_unexpected_error,
465                         	    p_token1       => g_sqlcode_token,
466                         	    p_token1_value => SQLCODE,
467                         	    p_token2       => g_sqlerrm_token,
468                         	    p_token2_value => SQLERRM);
469     		-- notify caller of an UNEXPECTED error
470     		x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
471     END Validate_Aro_Code;
472 
473   ---------------------------------------------------------------------------
474   -- PROCEDURE Validate_Arlo_Code
475   ---------------------------------------------------------------------------
476   -- Start of comments
477   --
478   -- Procedure Name  : Validate_Arlo_Code
479   -- Description     : Checks if code exists in FND_COMMON_LOOKUPS
480   -- Business Rules  :
481   -- Parameters      :
482   -- Version         : 1.0
483   -- End of comments
484   ---------------------------------------------------------------------------
485 
486    PROCEDURE Validate_Arlo_Code(
487      	x_return_status  OUT NOCOPY  VARCHAR2
488 	   ,p_agnv_rec          IN agnv_rec_type )
489    IS
490 
491 	l_dummy		VARCHAR2(1);
492 
493     BEGIN
494 	-- initialize return status
495   	x_return_status := Okc_Api.G_RET_STS_SUCCESS;
496 
497       IF (p_agnv_rec.arlo_code IS NOT NULL) AND (p_agnv_rec.arlo_code <> OKC_API.G_MISS_CHAR) THEN
498 	--Check if arlo code exists in the FND_COMMON_LOOKUPS or not
499 	  l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE (
500 			p_lookup_type => 'OKL_ACCRUAL_RULE_LOGICAL_OP',
501 			p_lookup_code => p_agnv_rec.arlo_code);
502 
503 	  IF (l_dummy = okl_api.g_false) THEN
504 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
505                         	p_msg_name     => g_invalid_value,
506                         	p_token1       => g_col_name_token,
507                         	p_token1_value => 'arlo_code');
508 
509           	x_return_status := Okc_Api.G_RET_STS_ERROR;
510 		RAISE G_EXCEPTION_HALT_VALIDATION;
511 	  END IF;
512 
513     END IF;
514 
515     EXCEPTION
516 		WHEN G_EXCEPTION_HALT_VALIDATION THEN
517     		-- no processing necessary;  validation can continue
518     		-- with the next column
519     		NULL;
520 
521 		 WHEN OTHERS THEN
522     		-- store SQL error message on message stack for caller
523     		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
524                         	    p_msg_name     => g_unexpected_error,
525                         	    p_token1       => g_sqlcode_token,
526                         	    p_token1_value => SQLCODE,
527                         	    p_token2       => g_sqlerrm_token,
528                         	    p_token2_value => SQLERRM);
529     		-- notify caller of an UNEXPECTED error
530     		x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
531     END Validate_Arlo_Code;
532 
533   ---------------------------------------------------------------------------
534   -- PROCEDURE Validate_Acro_Code
535   ---------------------------------------------------------------------------
536   -- Start of comments
537   --
538   -- Procedure Name  : Validate_Acro_Code
539   -- Description     : Checks if code exists in FND_COMMON_LOOKUPS
540   -- Business Rules  :
541   -- Parameters      :
542   -- Version         : 1.0
543   -- End of comments
544   ---------------------------------------------------------------------------
545 
546    PROCEDURE Validate_Acro_Code(
547      	x_return_status  OUT NOCOPY VARCHAR2
548 	   ,p_agnv_rec          IN agnv_rec_type
549 	    ) IS
550 
551 	l_dummy		VARCHAR2(1);
552 
553     BEGIN
554 	-- initialize return status
555   	x_return_status := Okc_Api.G_RET_STS_SUCCESS;
556 
557     -- check for data before processing
558     IF (p_agnv_rec.acro_code IS NULL) OR
559        (p_agnv_rec.acro_code = Okc_Api.G_MISS_CHAR) THEN
560        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
561                           ,p_msg_name       => g_required_value
562                           ,p_token1         => g_col_name_token
563                           ,p_token1_value   => 'acro_code');
564        x_return_status    := Okc_Api.G_RET_STS_ERROR;
565        RAISE G_EXCEPTION_HALT_VALIDATION;
566     END IF;
567 
568 	--Check if acro code exists in the FND_COMMON_LOOKUPS or not
569 	  l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE (
570 				p_lookup_type => 'OKL_ACCRUAL_RULE_OPERATOR',
571 				p_lookup_code => p_agnv_rec.acro_code);
572 
573 	  IF (l_dummy = okl_api.g_false) THEN
574 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
575                         	p_msg_name     => g_invalid_value,
576                         	p_token1       => g_col_name_token,
577                         	p_token1_value => 'acro_code');
578           	x_return_status := Okc_Api.G_RET_STS_ERROR;
579 		RAISE G_EXCEPTION_HALT_VALIDATION;
580 	  END IF;
581 
582     EXCEPTION
583 		WHEN G_EXCEPTION_HALT_VALIDATION THEN
584     		-- no processing necessary;  validation can continue
585     		-- with the next column
586     		NULL;
587 
588 		WHEN OTHERS THEN
589     		-- store SQL error message on message stack for caller
590     		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
591                         	    p_msg_name     => g_unexpected_error,
592                         	    p_token1       => g_sqlcode_token,
593                         	    p_token1_value => SQLCODE,
594                         	    p_token2       => g_sqlerrm_token,
595                         	    p_token2_value => SQLERRM);
596     		-- notify caller of an UNEXPECTED error
597     		x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
598     END Validate_Acro_Code;
599 
600   ---------------------------------------------------------------------------
601   -- PROCEDURE Validate_Right_Operand_Literal
602   ---------------------------------------------------------------------------
603   -- Start of comments
604   --
605   -- Procedure Name  : Validate_Right_Operand_Literal
606   -- Description     :
607   -- Business Rules  :
608   -- Parameters      :
609   -- Version         : 1.0
610   -- End of comments
611   ---------------------------------------------------------------------------
612   PROCEDURE Validate_Right_Operand_Literal(x_return_status OUT NOCOPY  VARCHAR2
613 										  ,p_agnv_rec      IN   agnv_rec_type )
614   IS
615 
616   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
617 
618   BEGIN
619     -- initialize return status
620     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
621     -- check for data before processing
622     IF (p_agnv_rec.right_operand_literal IS NULL) OR
623        (p_agnv_rec.right_operand_literal = Okc_Api.G_MISS_CHAR) THEN
624        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
625                           ,p_msg_name       => g_required_value
626                           ,p_token1         => g_col_name_token
627                           ,p_token1_value   => 'right_operand_literal');
628        x_return_status    := Okc_Api.G_RET_STS_ERROR;
629        RAISE G_EXCEPTION_HALT_VALIDATION;
630     END IF;
631 
632   EXCEPTION
633     WHEN G_EXCEPTION_HALT_VALIDATION THEN
634     -- no processing necessary; validation can continue
635     -- with the next column
636     NULL;
637 
638     WHEN OTHERS THEN
639       -- store SQL error message on message stack for caller
640       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
641                           p_msg_name     => g_unexpected_error,
642                           p_token1       => g_sqlcode_token,
643                           p_token1_value => SQLCODE,
644                           p_token2       => g_sqlerrm_token,
645                           p_token2_value => SQLERRM);
646 
647       -- notify caller of an UNEXPECTED error
648       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
649 
650   END Validate_Right_Operand_Literal;
651 
652   ---------------------------------------------------------------------------
653   -- PROCEDURE Validate_Line_Number
654   ---------------------------------------------------------------------------
655   -- Start of comments
656   --
657   -- Procedure Name  : Validate_Line_Number
658   -- Description     :
659   -- Business Rules  :
660   -- Parameters      :
661   -- Version         : 1.0
662   -- End of comments
663   ---------------------------------------------------------------------------
664   PROCEDURE Validate_Line_Number(x_return_status OUT NOCOPY  VARCHAR2
665 								,p_agnv_rec      IN   agnv_rec_type )
666   IS
667 
668   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
669 
670   BEGIN
671     -- initialize return status
672     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
673     -- check for data before processing
674     IF (p_agnv_rec.line_number IS NULL) OR
675        (p_agnv_rec.line_number = Okc_Api.G_MISS_NUM) THEN
676        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
677                           ,p_msg_name       => g_required_value
678                           ,p_token1         => g_col_name_token
679                           ,p_token1_value   => 'line_number');
680        x_return_status    := Okc_Api.G_RET_STS_ERROR;
681        RAISE G_EXCEPTION_HALT_VALIDATION;
682     END IF;
683 
684   EXCEPTION
685     WHEN G_EXCEPTION_HALT_VALIDATION THEN
686     -- no processing necessary; validation can continue
687     -- with the next column
688     NULL;
689 
690     WHEN OTHERS THEN
691       -- store SQL error message on message stack for caller
692       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
693                           p_msg_name     => g_unexpected_error,
694                           p_token1       => g_sqlcode_token,
695                           p_token1_value => SQLCODE,
696                           p_token2       => g_sqlerrm_token,
697                           p_token2_value => SQLERRM);
698 
699       -- notify caller of an UNEXPECTED error
700       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
701 
702   END Validate_Line_Number;
703 
704   ---------------------------------------------------------------------------
705   -- PROCEDURE Validate_Version
706   ---------------------------------------------------------------------------
707   -- Start of comments
708   --
709   -- Procedure Name  : Validate_Version
710   -- Description     :
711   -- Business Rules  :
712   -- Parameters      :
713   -- Version         : 1.0
714   -- End of comments
715   ---------------------------------------------------------------------------
716   PROCEDURE Validate_Version(x_return_status OUT NOCOPY  VARCHAR2
717 							,p_agnv_rec      IN   agnv_rec_type )
718   IS
719 
720   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
721 
722   BEGIN
723     -- initialize return status
724     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
725     -- check for data before processing
726     IF (p_agnv_rec.version IS NULL) OR
727        (p_agnv_rec.version = Okc_Api.G_MISS_CHAR) THEN
728        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
729                           ,p_msg_name       => g_required_value
730                           ,p_token1         => g_col_name_token
731                           ,p_token1_value   => 'version');
732        x_return_status    := Okc_Api.G_RET_STS_ERROR;
733        RAISE G_EXCEPTION_HALT_VALIDATION;
734     END IF;
735 
736   EXCEPTION
737     WHEN G_EXCEPTION_HALT_VALIDATION THEN
738     -- no processing necessary; validation can continue
739     -- with the next column
740     NULL;
741 
742     WHEN OTHERS THEN
743       -- store SQL error message on message stack for caller
744       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
745                           p_msg_name     => g_unexpected_error,
746                           p_token1       => g_sqlcode_token,
747                           p_token1_value => SQLCODE,
748                           p_token2       => g_sqlerrm_token,
749                           p_token2_value => SQLERRM);
750 
751       -- notify caller of an UNEXPECTED error
752       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
753 
754   END Validate_Version;
755 
756   ---------------------------------------------------------------------------
757   -- PROCEDURE Validate_Left_Parentheses
758   ---------------------------------------------------------------------------
759   -- Start of comments
760   --
761   -- Procedure Name  : Validate_Left_Parentheses
762   -- Description     : Checks if Left Parentheses is '('
763   -- Business Rules  :
764   -- Parameters      :
765   -- Version         : 1.0
766   -- End of comments
767   ---------------------------------------------------------------------------
768 
769    PROCEDURE Validate_Left_Parentheses(x_return_status  OUT NOCOPY  VARCHAR2
770 									  ,p_agnv_rec    IN agnv_rec_type )
771    IS
772    l_dummy	VARCHAR2(1);
773 
774    BEGIN
775 	-- initialize return status
776   	x_return_status := Okc_Api.G_RET_STS_SUCCESS;
777 	IF (p_agnv_rec.left_parentheses IS NOT NULL) AND
778            (p_agnv_rec.left_parentheses <> OKC_API.G_MISS_CHAR)  THEN
779 	--Check if left parentheses exists in the FND_COMMON_LOOKUPS or not
780 	  l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE (
781 					p_lookup_type => 'OKL_PARENTHESIS',
782 					p_lookup_code => p_agnv_rec.left_parentheses);
783 
784 	  IF l_dummy = okl_api.g_false THEN
785 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
786                         	p_msg_name     => g_invalid_value,
787                         	p_token1       => g_col_name_token,
788                         	p_token1_value => 'left_parentheses');
789           	x_return_status := Okc_Api.G_RET_STS_ERROR;
790 		RAISE G_EXCEPTION_HALT_VALIDATION;
791 	  END IF;
792         END IF;
793 
794     EXCEPTION
795 		WHEN G_EXCEPTION_HALT_VALIDATION THEN
796     		-- no processing necessary;  validation can continue
797     		-- with the next column
798     		NULL;
799 
800 		 WHEN OTHERS THEN
801     		-- store SQL error message on message stack for caller
802     		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
803                         	    p_msg_name     => g_unexpected_error,
804                         	    p_token1       => g_sqlcode_token,
805                         	    p_token1_value => SQLCODE,
806                         	    p_token2       => g_sqlerrm_token,
807                         	    p_token2_value => SQLERRM);
808     		-- notify caller of an UNEXPECTED error
809     		x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
810     END Validate_Left_Parentheses;
811 
812   ---------------------------------------------------------------------------
813   -- PROCEDURE Validate_Right_Parentheses
814   ---------------------------------------------------------------------------
815   -- Start of comments
816   --
817   -- Procedure Name  : Validate_Right_Parentheses
818   -- Description     : Checks if Right Parentheses is ')'
819   -- Business Rules  :
820   -- Parameters      :
821   -- Version         : 1.0
822   -- End of comments
823   ---------------------------------------------------------------------------
824 
825    PROCEDURE Validate_Right_Parentheses(x_return_status OUT NOCOPY  VARCHAR2
826 									   ,p_agnv_rec    IN agnv_rec_type )
827    IS
828    l_dummy VARCHAR2(1);
829 
830    BEGIN
831 	-- initialize return status
832   	x_return_status := Okc_Api.G_RET_STS_SUCCESS;
833 
834 	IF (p_agnv_rec.right_parentheses IS NOT NULL) AND
835            (p_agnv_rec.right_parentheses <> OKC_API.G_MISS_CHAR) THEN
836 	--Check if right parentheses exists in the FND_COMMON_LOOKUPS or not
837 	  l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE (
838 					p_lookup_type => 'OKL_PARENTHESIS',
839 					p_lookup_code => p_agnv_rec.right_parentheses);
840 
841 	  IF l_dummy = okl_api.g_false THEN
842 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
843                         	p_msg_name     => g_invalid_value,
844                         	p_token1       => g_col_name_token,
845                         	p_token1_value => 'right_parentheses');
846           	x_return_status := Okc_Api.G_RET_STS_ERROR;
847 		RAISE G_EXCEPTION_HALT_VALIDATION;
848 	  END IF;
849       END IF;
850     EXCEPTION
851 		WHEN G_EXCEPTION_HALT_VALIDATION THEN
852     		-- no processing necessary;  validation can continue
853     		-- with the next column
854     		NULL;
855 
856 		 WHEN OTHERS THEN
857     		-- store SQL error message on message stack for caller
858     		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
859                         	    p_msg_name     => g_unexpected_error,
860                         	    p_token1       => g_sqlcode_token,
861                         	    p_token1_value => SQLCODE,
862                         	    p_token2       => g_sqlerrm_token,
863                         	    p_token2_value => SQLERRM);
864     		-- notify caller of an UNEXPECTED error
865     		x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
866     END Validate_Right_Parentheses;
867 
868   ---------------------------------------------------------------------------
869   -- PROCEDURE Validate_From_Date
870   ---------------------------------------------------------------------------
871   -- Start of comments
872   --
873   -- Procedure Name  : Validate_From_Date
874   -- Description     :
875   -- Business Rules  :
876   -- Parameters      :
877   -- Version         : 1.0
878   -- End of comments
879   ---------------------------------------------------------------------------
880   PROCEDURE Validate_From_Date(x_return_status OUT NOCOPY  VARCHAR2
881 							  ,p_agnv_rec      IN   agnv_rec_type )
882   IS
883 
884   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
885 
886   BEGIN
887     -- initialize return status
888     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
889     -- check for data before processing
890     IF (p_agnv_rec.from_date IS NULL) OR
891        (p_agnv_rec.from_date = Okc_Api.G_MISS_DATE) THEN
892        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
893                           ,p_msg_name       => g_required_value
894                           ,p_token1         => g_col_name_token
895                           ,p_token1_value   => 'from_date');
896        x_return_status    := Okc_Api.G_RET_STS_ERROR;
897        RAISE G_EXCEPTION_HALT_VALIDATION;
898     END IF;
899   EXCEPTION
900     WHEN G_EXCEPTION_HALT_VALIDATION THEN
901     -- no processing necessary; validation can continue
902     -- with the next column
903     NULL;
904 
905     WHEN OTHERS THEN
906       -- store SQL error message on message stack for caller
907       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
908                           p_msg_name     => g_unexpected_error,
909                           p_token1       => g_sqlcode_token,
910                           p_token1_value => SQLCODE,
911                           p_token2       => g_sqlerrm_token,
912                           p_token2_value => SQLERRM);
913 
914       -- notify caller of an UNEXPECTED error
915       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
916 
917   END Validate_From_Date;
918 
919 
920   ---------------------------------------------------------------------------
921   -- PROCEDURE Validate_To_Date
922   ---------------------------------------------------------------------------
923   -- Start of comments
924   --
925   -- Procedure Name  : Validate_To_Date
926   -- Description     :
927   -- Business Rules  :
928   -- Parameters      :
929   -- Version         : 1.0
930   -- End of comments
931   ---------------------------------------------------------------------------
932   PROCEDURE Validate_To_Date(x_return_status OUT NOCOPY  VARCHAR2
933 							,p_agnv_rec      IN   agnv_rec_type )
934   IS
935 
936   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
937 
938   BEGIN
939     -- initialize return status
940     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
941 	IF (p_agnv_rec.to_date IS NOT NULL) AND
942            (p_agnv_rec.to_date <> OKC_API.G_MISS_DATE) THEN
943 	    IF p_agnv_rec.to_date < p_agnv_rec.from_date THEN
944 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
945                         	p_msg_name     => g_invalid_value,
946                         	p_token1       => g_col_name_token,
947                         	p_token1_value => 'to_date');
948           	x_return_status := Okc_Api.G_RET_STS_ERROR;
949 		RAISE G_EXCEPTION_HALT_VALIDATION;
950 	  END IF;
951     END IF;
952   EXCEPTION
953     WHEN G_EXCEPTION_HALT_VALIDATION THEN
954     -- no processing necessary; validation can continue
955     -- with the next column
956     NULL;
957 
958     WHEN OTHERS THEN
959       -- store SQL error message on message stack for caller
960       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
961                           p_msg_name     => g_unexpected_error,
962                           p_token1       => g_sqlcode_token,
963                           p_token1_value => SQLCODE,
964                           p_token2       => g_sqlerrm_token,
965                           p_token2_value => SQLERRM);
966 
967       -- notify caller of an UNEXPECTED error
968       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
969 
970   END Validate_To_Date;
971 
972   ---------------------------------------------------------------------------
973   -- PROCEDURE Validate_Unique_Agn_Record
974   ---------------------------------------------------------------------------
975   -- Start of comments
976   --
977   -- Procedure Name  : Validate_Unique_Agn_Record
978   -- Description     :
979   -- Business Rules  :
980   -- Parameters      :
981   -- Version         : 1.0
982   -- End of comments
983   ---------------------------------------------------------------------------
984 
985   PROCEDURE Validate_Unique_Agn_Record(x_return_status OUT NOCOPY  VARCHAR2
986 									  ,p_agnv_rec      IN   agnv_rec_type )
987   IS
988 
989   l_dummy                 VARCHAR2(1);
990   l_row_found             BOOLEAN := FALSE;
991 
992     --bug 2510192. Added org id as part of unique key constraint
993 	-- to make the functionality org aware.
994     CURSOR unique_agn_csr(p_line_number OKL_ACCRUAL_GNRTNS.line_number%TYPE
995 		  			     ,p_version OKL_ACCRUAL_GNRTNS.version%TYPE
996 						 ,p_org_id OKL_ACCRUAL_GNRTNS.org_id%TYPE
997 						 ,p_id OKL_ACCRUAL_GNRTNS.id%TYPE) IS
998     SELECT 1
999     FROM OKL_ACCRUAL_GNRTNS
1000     WHERE  line_number = p_line_number
1001     AND    version = p_version
1002     AND    nvl(org_id,-99) = nvl(p_org_id,-99)
1003 	AND	   id <> p_id;
1004 
1005   BEGIN
1006 
1007     -- initialize return status
1008     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1009 
1010     OPEN unique_agn_csr(p_agnv_rec.line_number,
1011 		  p_agnv_rec.version, p_agnv_rec.org_id, p_agnv_rec.id);
1012     FETCH unique_agn_csr INTO l_dummy;
1013     l_row_found := unique_agn_csr%FOUND;
1014     CLOSE unique_agn_csr;
1015     IF l_row_found THEN
1016 		Okc_Api.set_message(G_APP_NAME,G_UNQS);
1017 		x_return_status := Okc_Api.G_RET_STS_ERROR;
1018      END IF;
1019 
1020   EXCEPTION
1021     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1022     -- no processing necessary; validation can continue
1023     -- with the next column
1024     NULL;
1025 
1026     WHEN OTHERS THEN
1027       -- store SQL error message on message stack for caller
1028       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1029                           p_msg_name     => g_unexpected_error,
1030                           p_token1       => g_sqlcode_token,
1031                           p_token1_value => SQLCODE,
1032                           p_token2       => g_sqlerrm_token,
1033                           p_token2_value => SQLERRM);
1034 
1035       -- notify caller of an UNEXPECTED error
1036       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1037 
1038   END Validate_Unique_Agn_Record;
1039 
1040 
1041   ---------------------------------------------------------------------------
1042   -- FUNCTION Validate_Attributes
1043   ---------------------------------------------------------------------------
1044   -- Start of comments
1045   --
1046   -- Procedure Name  : Validate_Attributes
1047   -- Description     :
1048   -- Business Rules  :
1049   -- Parameters      :
1050   -- Version         : 1.0
1051   -- End of comments
1052   ---------------------------------------------------------------------------
1053 
1054   FUNCTION Validate_Attributes (
1055     p_agnv_rec IN  agnv_rec_type
1056   ) RETURN VARCHAR2 IS
1057 
1058     x_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1059     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1060   BEGIN
1061 
1062      -- call each column-level validation
1063 
1064     -- Validate_Id
1065     Validate_Id(x_return_status, p_agnv_rec );
1066     -- store the highest degree of error
1067        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1068           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1069           -- need to leave
1070           l_return_status := x_return_status;
1071           RAISE G_EXCEPTION_HALT_VALIDATION;
1072           ELSE
1073           -- record that there was an error
1074           l_return_status := x_return_status;
1075           END IF;
1076        END IF;
1077 
1078     -- Validate_Object_Version_Number
1079     Validate_Object_Version_Number(x_return_status, p_agnv_rec );
1080     -- store the highest degree of error
1081        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1082           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1083           -- need to leave
1084           l_return_status := x_return_status;
1085           RAISE G_EXCEPTION_HALT_VALIDATION;
1086           ELSE
1087           -- record that there was an error
1088           l_return_status := x_return_status;
1089           END IF;
1090        END IF;
1091 
1092     -- Validate_Line_Number
1093     Validate_Line_Number(x_return_status, p_agnv_rec );
1094     -- store the highest degree of error
1095        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1096           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1097           -- need to leave
1098           l_return_status := x_return_status;
1099           RAISE G_EXCEPTION_HALT_VALIDATION;
1100           ELSE
1101           -- record that there was an error
1102           l_return_status := x_return_status;
1103           END IF;
1104        END IF;
1105 
1106     -- Validate_Version
1107        Validate_Version(x_return_status, p_agnv_rec );
1108     -- store the highest degree of error
1109        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1110           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1111           -- need to leave
1112           l_return_status := x_return_status;
1113           RAISE G_EXCEPTION_HALT_VALIDATION;
1114           ELSE
1115           -- record that there was an error
1116           l_return_status := x_return_status;
1117           END IF;
1118        END IF;
1119 
1120     -- Validate_Aro_Code
1121        Validate_Aro_Code(x_return_status, p_agnv_rec );
1122     -- store the highest degree of error
1123        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1124           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1125           -- need to leave
1126           l_return_status := x_return_status;
1127           RAISE G_EXCEPTION_HALT_VALIDATION;
1128           ELSE
1129           -- record that there was an error
1130           l_return_status := x_return_status;
1131           END IF;
1132        END IF;
1133 
1134     -- Validate_Arlo_Code
1135        Validate_Arlo_Code(x_return_status, p_agnv_rec );
1136     -- store the highest degree of error
1137        IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1138           IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1139           -- need to leave
1140           l_return_status := x_return_status;
1141           RAISE G_EXCEPTION_HALT_VALIDATION;
1142           ELSE
1143           -- record that there was an error
1144           l_return_status := x_return_status;
1145           END IF;
1146        END IF;
1147 
1148     -- Validate_Acro_Code
1149        Validate_Acro_Code(x_return_status, p_agnv_rec );
1150     -- store the highest degree of error
1151        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1152           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1153           -- need to leave
1154           l_return_status := x_return_status;
1155           RAISE G_EXCEPTION_HALT_VALIDATION;
1156           ELSE
1157           -- record that there was an error
1158           l_return_status := x_return_status;
1159           END IF;
1160        END IF;
1161 
1162     -- Validate_Right_Operand_Literal
1163        Validate_Right_Operand_Literal(x_return_status, p_agnv_rec );
1164     -- store the highest degree of error
1165        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1166           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1167           -- need to leave
1168           l_return_status := x_return_status;
1169           RAISE G_EXCEPTION_HALT_VALIDATION;
1170           ELSE
1171           -- record that there was an error
1172           l_return_status := x_return_status;
1173           END IF;
1174        END IF;
1175 
1176     -- Validate_Left_Parentheses
1177        Validate_Left_Parentheses(x_return_status, p_agnv_rec );
1178     -- store the highest degree of error
1179        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1180           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1181           -- need to leave
1182           l_return_status := x_return_status;
1183           RAISE G_EXCEPTION_HALT_VALIDATION;
1184           ELSE
1185           -- record that there was an error
1186           l_return_status := x_return_status;
1187           END IF;
1188        END IF;
1189 
1190     -- Validate_Right_Parentheses
1191        Validate_Right_Parentheses(x_return_status, p_agnv_rec );
1192     -- store the highest degree of error
1193        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1194           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1195           -- need to leave
1196           l_return_status := x_return_status;
1197           RAISE G_EXCEPTION_HALT_VALIDATION;
1198           ELSE
1199           -- record that there was an error
1200           l_return_status := x_return_status;
1201           END IF;
1202        END IF;
1203 
1204     -- Validate_From_Date
1205        Validate_From_Date(x_return_status, p_agnv_rec );
1206     -- store the highest degree of error
1207        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1208           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1209           -- need to leave
1210           l_return_status := x_return_status;
1211           RAISE G_EXCEPTION_HALT_VALIDATION;
1212           ELSE
1213           -- record that there was an error
1214           l_return_status := x_return_status;
1215           END IF;
1216        END IF;
1217 
1218 
1219     -- Validate_To_Date
1220        Validate_To_Date(x_return_status, p_agnv_rec );
1221     -- store the highest degree of error
1222        IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1223           IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1224           -- need to leave
1225           l_return_status := x_return_status;
1226           RAISE G_EXCEPTION_HALT_VALIDATION;
1227           ELSE
1228           -- record that there was an error
1229           l_return_status := x_return_status;
1230           END IF;
1231        END IF;
1232 
1233 
1234     RETURN(l_return_status);
1235 
1236   EXCEPTION
1237     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1238        -- just come out with return status
1239        NULL;
1240        RETURN (l_return_status);
1241 
1242     WHEN OTHERS THEN
1243        -- store SQL error message on message stack for caller
1244        Okc_Api.SET_MESSAGE(p_app_name         => g_app_name,
1245                            p_msg_name         => g_unexpected_error,
1246                            p_token1           => g_sqlcode_token,
1247                            p_token1_value     => SQLCODE,
1248                            p_token2           => g_sqlerrm_token,
1249                            p_token2_value     => SQLERRM);
1250        -- notify caller of an UNEXPECTED error
1251        l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1252        RETURN(l_return_status);
1253 
1254   END Validate_Attributes;
1255 
1256   ---------------------------------------------------------------------------
1257   -- FUNCTION Validate_Record
1258   ---------------------------------------------------------------------------
1259   -- Start of comments
1260   --
1261   -- Procedure Name  : Validate_Record
1262   -- Description     :
1263   -- Business Rules  :
1264   -- Parameters      :
1265   -- Version         : 1.0
1266   -- End of comments
1267   ---------------------------------------------------------------------------
1268 
1269   FUNCTION Validate_Record (
1270     p_agnv_rec IN agnv_rec_type
1271   ) RETURN VARCHAR2 IS
1272     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1273     x_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1274   BEGIN
1275 
1276     -- Validate_Unique_Agn_Record
1277       Validate_Unique_Agn_Record(x_return_status, p_agnv_rec );
1278       -- store the highest degree of error
1279       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1280         IF (x_return_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1281             -- need to leave
1282             l_return_status := x_return_status;
1283             RAISE G_EXCEPTION_HALT_VALIDATION;
1284             ELSE
1285             -- record that there was an error
1286             l_return_status := x_return_status;
1287         END IF;
1288       END IF;
1289 
1290   RETURN(l_return_status);
1291 
1292   EXCEPTION
1293     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1294     -- no processing necessary;  validation can continue
1295     -- with the next column
1296     NULL;
1297     RETURN (l_return_status);
1298 
1299     WHEN OTHERS THEN
1300       -- store SQL error message on message stack for caller
1301       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1302                           p_msg_name     => g_unexpected_error,
1303                           p_token1       => g_sqlcode_token,
1304                           p_token1_value => SQLCODE,
1305                           p_token2       => g_sqlerrm_token,
1306                           p_token2_value => SQLERRM);
1307 
1308       -- notify caller of an UNEXPECTED error
1309       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1310 
1311   END Validate_Record;
1312 
1313 /************************ END HAND CODING **********************************/
1314 
1315   ---------------------------------------------------------------------------
1316   -- PROCEDURE Migrate
1317   ---------------------------------------------------------------------------
1318   PROCEDURE migrate (
1319     p_from	IN agnv_rec_type,
1320     p_to	IN OUT NOCOPY agn_rec_type
1321   ) IS
1322   BEGIN
1323     p_to.id := p_from.id;
1324     p_to.line_number := p_from.line_number;
1325     p_to.version := p_from.version;
1326     p_to.aro_code := p_from.aro_code;
1327     p_to.arlo_code := p_from.arlo_code;
1328     p_to.acro_code := p_from.acro_code;
1329     p_to.right_operand_literal := p_from.right_operand_literal;
1330     p_to.object_version_number := p_from.object_version_number;
1331     p_to.left_parentheses := p_from.left_parentheses;
1332     p_to.right_parentheses := p_from.right_parentheses;
1333     p_to.from_date := p_from.from_date;
1334     p_to.TO_DATE := p_from.TO_DATE;
1335     p_to.org_id := p_from.org_id;
1336     p_to.created_by := p_from.created_by;
1337     p_to.creation_date := p_from.creation_date;
1338     p_to.last_updated_by := p_from.last_updated_by;
1339     p_to.last_update_date := p_from.last_update_date;
1340     p_to.last_update_login := p_from.last_update_login;
1341   END migrate;
1342   PROCEDURE migrate (
1343     p_from	IN agn_rec_type,
1344     p_to	IN OUT NOCOPY agnv_rec_type
1345   ) IS
1346   BEGIN
1347     p_to.id := p_from.id;
1348     p_to.line_number := p_from.line_number;
1349     p_to.version := p_from.version;
1350     p_to.aro_code := p_from.aro_code;
1351     p_to.arlo_code := p_from.arlo_code;
1352     p_to.acro_code := p_from.acro_code;
1353     p_to.right_operand_literal := p_from.right_operand_literal;
1354     p_to.object_version_number := p_from.object_version_number;
1355     p_to.left_parentheses := p_from.left_parentheses;
1356     p_to.right_parentheses := p_from.right_parentheses;
1357     p_to.from_date := p_from.from_date;
1358     p_to.TO_DATE := p_from.TO_DATE;
1359     p_to.org_id := p_from.org_id;
1360     p_to.created_by := p_from.created_by;
1361     p_to.creation_date := p_from.creation_date;
1362     p_to.last_updated_by := p_from.last_updated_by;
1363     p_to.last_update_date := p_from.last_update_date;
1364     p_to.last_update_login := p_from.last_update_login;
1365   END migrate;
1366 
1367   ---------------------------------------------------------------------------
1368   -- PROCEDURE validate_row
1369   ---------------------------------------------------------------------------
1370   -------------------------------------------
1371   -- validate_row for:OKL_ACCRUAL_GNRTNS_V --
1372   -------------------------------------------
1373   PROCEDURE validate_row(
1374     p_api_version                  IN NUMBER,
1375     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1376     x_return_status                OUT NOCOPY VARCHAR2,
1377     x_msg_count                    OUT NOCOPY NUMBER,
1378     x_msg_data                     OUT NOCOPY VARCHAR2,
1379     p_agnv_rec                     IN agnv_rec_type) IS
1380 
1381     l_api_version                 CONSTANT NUMBER := 1;
1382     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
1383     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1384     l_agnv_rec                     agnv_rec_type := p_agnv_rec;
1385     l_agn_rec                      agn_rec_type;
1386   BEGIN
1387     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1388                                               G_PKG_NAME,
1389                                               p_init_msg_list,
1390                                               l_api_version,
1391                                               p_api_version,
1392                                               '_PVT',
1393                                               x_return_status);
1394     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1395       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1396     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1397       RAISE Okc_Api.G_EXCEPTION_ERROR;
1398     END IF;
1399     --- Validate all non-missing attributes (Item Level Validation)
1400     l_return_status := Validate_Attributes(l_agnv_rec);
1401     --- If any errors happen abort API
1402     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1403       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1404     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1405       RAISE Okc_Api.G_EXCEPTION_ERROR;
1406     END IF;
1407     l_return_status := Validate_Record(l_agnv_rec);
1408     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1409       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1410     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1411       RAISE Okc_Api.G_EXCEPTION_ERROR;
1412     END IF;
1413     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1414   EXCEPTION
1415     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1416       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1417       (
1418         l_api_name,
1419         G_PKG_NAME,
1420         'OKC_API.G_RET_STS_ERROR',
1421         x_msg_count,
1422         x_msg_data,
1423         '_PVT'
1424       );
1425     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1426       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1427       (
1428         l_api_name,
1429         G_PKG_NAME,
1430         'OKC_API.G_RET_STS_UNEXP_ERROR',
1431         x_msg_count,
1432         x_msg_data,
1433         '_PVT'
1434       );
1435     WHEN OTHERS THEN
1436       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1437       (
1438         l_api_name,
1439         G_PKG_NAME,
1440         'OTHERS',
1441         x_msg_count,
1442         x_msg_data,
1443         '_PVT'
1444       );
1445   END validate_row;
1446   ------------------------------------------
1447   -- PL/SQL TBL validate_row for:AGNV_TBL --
1448   ------------------------------------------
1449   PROCEDURE validate_row(
1450     p_api_version                  IN NUMBER,
1451     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1452     x_return_status                OUT NOCOPY VARCHAR2,
1453     x_msg_count                    OUT NOCOPY NUMBER,
1454     x_msg_data                     OUT NOCOPY VARCHAR2,
1455     p_agnv_tbl                     IN agnv_tbl_type) IS
1456 
1457     l_api_version                 CONSTANT NUMBER := 1;
1458     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1459     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1460 	l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1461     i                              NUMBER := 0;
1462   BEGIN
1463     Okc_Api.init_msg_list(p_init_msg_list);
1464     -- Make sure PL/SQL table has records in it before passing
1465     IF (p_agnv_tbl.COUNT > 0) THEN
1466       i := p_agnv_tbl.FIRST;
1467       LOOP
1468         validate_row (
1469           p_api_version                  => p_api_version,
1470           p_init_msg_list                => Okc_Api.G_FALSE,
1471           x_return_status                => x_return_status,
1472           x_msg_count                    => x_msg_count,
1473           x_msg_data                     => x_msg_data,
1474           p_agnv_rec                     => p_agnv_tbl(i));
1475 /* Begin Post Generation Change */
1476      -- store the highest degree of error
1477 	IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1478       IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1479          l_overall_status := x_return_status;
1480       END IF;
1481 	END IF;
1482 /* End Post Generation Change */
1483         EXIT WHEN (i = p_agnv_tbl.LAST);
1484         i := p_agnv_tbl.NEXT(i);
1485       END LOOP;
1486     END IF;
1487   EXCEPTION
1488     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1489       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1490       (
1491         l_api_name,
1492         G_PKG_NAME,
1493         'OKC_API.G_RET_STS_ERROR',
1494         x_msg_count,
1495         x_msg_data,
1496         '_PVT'
1497       );
1498     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1499       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1500       (
1501         l_api_name,
1502         G_PKG_NAME,
1503         'OKC_API.G_RET_STS_UNEXP_ERROR',
1504         x_msg_count,
1505         x_msg_data,
1506         '_PVT'
1507       );
1508     WHEN OTHERS THEN
1509       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1510       (
1511         l_api_name,
1512         G_PKG_NAME,
1513         'OTHERS',
1514         x_msg_count,
1515         x_msg_data,
1516         '_PVT'
1517       );
1518   END validate_row;
1519 
1520   ---------------------------------------------------------------------------
1521   -- PROCEDURE insert_row
1522   ---------------------------------------------------------------------------
1523   ---------------------------------------
1524   -- insert_row for:OKL_ACCRUAL_GNRTNS --
1525   ---------------------------------------
1526   PROCEDURE insert_row(
1527     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1528     x_return_status                OUT NOCOPY VARCHAR2,
1529     x_msg_count                    OUT NOCOPY NUMBER,
1530     x_msg_data                     OUT NOCOPY VARCHAR2,
1531     p_agn_rec                      IN agn_rec_type,
1532     x_agn_rec                      OUT NOCOPY agn_rec_type) IS
1533 
1534     l_api_version                 CONSTANT NUMBER := 1;
1535     l_api_name                     CONSTANT VARCHAR2(30) := 'GNRTNS_insert_row';
1536     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1537     l_agn_rec                      agn_rec_type := p_agn_rec;
1538     l_def_agn_rec                  agn_rec_type;
1539     -------------------------------------------
1540     -- Set_Attributes for:OKL_ACCRUAL_GNRTNS --
1541     -------------------------------------------
1542     FUNCTION Set_Attributes (
1543       p_agn_rec IN  agn_rec_type,
1544       x_agn_rec OUT NOCOPY agn_rec_type
1545     ) RETURN VARCHAR2 IS
1546       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1547     BEGIN
1548       x_agn_rec := p_agn_rec;
1549       RETURN(l_return_status);
1550     END Set_Attributes;
1551   BEGIN
1552     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1553                                               p_init_msg_list,
1554                                               '_PVT',
1555                                               x_return_status);
1556     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1557       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1558     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1559       RAISE Okc_Api.G_EXCEPTION_ERROR;
1560     END IF;
1561     --- Setting item attributes
1562     l_return_status := Set_Attributes(
1563       p_agn_rec,                         -- IN
1564       l_agn_rec);                        -- OUT
1565     --- If any errors happen abort API
1566     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1567       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1568     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1569       RAISE Okc_Api.G_EXCEPTION_ERROR;
1570     END IF;
1571     INSERT INTO OKL_ACCRUAL_GNRTNS(
1572         id,
1573         line_number,
1574         version,
1575         aro_code,
1576         arlo_code,
1577         acro_code,
1578         right_operand_literal,
1579         object_version_number,
1580         left_parentheses,
1581         right_parentheses,
1582         from_date,
1583         TO_DATE,
1584         org_id,
1585         created_by,
1586         creation_date,
1587         last_updated_by,
1588         last_update_date,
1589         last_update_login)
1590       VALUES (
1591         l_agn_rec.id,
1592         l_agn_rec.line_number,
1593         l_agn_rec.version,
1594         l_agn_rec.aro_code,
1595         l_agn_rec.arlo_code,
1596         l_agn_rec.acro_code,
1597         l_agn_rec.right_operand_literal,
1598         l_agn_rec.object_version_number,
1599         l_agn_rec.left_parentheses,
1600         l_agn_rec.right_parentheses,
1601         l_agn_rec.from_date,
1602         l_agn_rec.TO_DATE,
1603         l_agn_rec.org_id,
1604         l_agn_rec.created_by,
1605         l_agn_rec.creation_date,
1606         l_agn_rec.last_updated_by,
1607         l_agn_rec.last_update_date,
1608         l_agn_rec.last_update_login);
1609     -- Set OUT values
1610     x_agn_rec := l_agn_rec;
1611     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1612   EXCEPTION
1613     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1614       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1615       (
1616         l_api_name,
1617         G_PKG_NAME,
1618         'OKC_API.G_RET_STS_ERROR',
1619         x_msg_count,
1620         x_msg_data,
1621         '_PVT'
1622       );
1623     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1624       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1625       (
1626         l_api_name,
1627         G_PKG_NAME,
1628         'OKC_API.G_RET_STS_UNEXP_ERROR',
1629         x_msg_count,
1630         x_msg_data,
1631         '_PVT'
1632       );
1633     WHEN OTHERS THEN
1634       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1635       (
1636         l_api_name,
1637         G_PKG_NAME,
1638         'OTHERS',
1639         x_msg_count,
1640         x_msg_data,
1641         '_PVT'
1642       );
1643   END insert_row;
1644   -----------------------------------------
1645   -- insert_row for:OKL_ACCRUAL_GNRTNS_V --
1646   -----------------------------------------
1647   PROCEDURE insert_row(
1648     p_api_version                  IN NUMBER,
1649     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1650     x_return_status                OUT NOCOPY VARCHAR2,
1651     x_msg_count                    OUT NOCOPY NUMBER,
1652     x_msg_data                     OUT NOCOPY VARCHAR2,
1653     p_agnv_rec                     IN agnv_rec_type,
1654     x_agnv_rec                     OUT NOCOPY agnv_rec_type) IS
1655 
1656     l_api_version                 CONSTANT NUMBER := 1;
1657     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
1658     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1659     l_agnv_rec                     agnv_rec_type;
1660     l_def_agnv_rec                 agnv_rec_type;
1661     l_agn_rec                      agn_rec_type;
1662     lx_agn_rec                     agn_rec_type;
1663     -------------------------------
1664     -- FUNCTION fill_who_columns --
1665     -------------------------------
1666     FUNCTION fill_who_columns (
1667       p_agnv_rec	IN agnv_rec_type
1668     ) RETURN agnv_rec_type IS
1669       l_agnv_rec	agnv_rec_type := p_agnv_rec;
1670     BEGIN
1671       l_agnv_rec.CREATION_DATE := SYSDATE;
1672       l_agnv_rec.CREATED_BY := Fnd_Global.User_Id;
1673       l_agnv_rec.LAST_UPDATE_DATE := l_agnv_rec.CREATION_DATE;
1674       l_agnv_rec.LAST_UPDATED_BY := Fnd_Global.User_Id;
1675       l_agnv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1676       RETURN(l_agnv_rec);
1677     END fill_who_columns;
1678     ---------------------------------------------
1679     -- Set_Attributes for:OKL_ACCRUAL_GNRTNS_V --
1680     ---------------------------------------------
1681     FUNCTION Set_Attributes (
1682       p_agnv_rec IN  agnv_rec_type,
1683       x_agnv_rec OUT NOCOPY agnv_rec_type
1684     ) RETURN VARCHAR2 IS
1685       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1686     BEGIN
1687       x_agnv_rec := p_agnv_rec;
1688       x_agnv_rec.OBJECT_VERSION_NUMBER := 1;
1689 
1690 /*  Change Made by GKHUNTET  for OA Migration Setup Accural Rule */
1691   --    x_agnv_rec.ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID();
1692 
1693       RETURN(l_return_status);
1694     END Set_Attributes;
1695   BEGIN
1696     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1697                                               G_PKG_NAME,
1698                                               p_init_msg_list,
1699                                               l_api_version,
1700                                               p_api_version,
1701                                               '_PVT',
1702                                               x_return_status);
1703     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1704       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1705     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1706       RAISE Okc_Api.G_EXCEPTION_ERROR;
1707     END IF;
1708     l_agnv_rec := null_out_defaults(p_agnv_rec);
1709     -- Set primary key value
1710     l_agnv_rec.ID := get_seq_id;
1711     --- Setting item attributes
1712     l_return_status := Set_Attributes(
1713       l_agnv_rec,                        -- IN
1714       l_def_agnv_rec);                   -- OUT
1715     --- If any errors happen abort API
1716     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1717       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1718     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1719       RAISE Okc_Api.G_EXCEPTION_ERROR;
1720     END IF;
1721     l_def_agnv_rec := fill_who_columns(l_def_agnv_rec);
1722     --- Validate all non-missing attributes (Item Level Validation)
1723     l_return_status := Validate_Attributes(l_def_agnv_rec);
1724     --- If any errors happen abort API
1725     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1726       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1727     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1728       RAISE Okc_Api.G_EXCEPTION_ERROR;
1729     END IF;
1730     l_return_status := Validate_Record(l_def_agnv_rec);
1731     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1732       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1733     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1734       RAISE Okc_Api.G_EXCEPTION_ERROR;
1735     END IF;
1736     --------------------------------------
1737     -- Move VIEW record to "Child" records
1738     --------------------------------------
1739     migrate(l_def_agnv_rec, l_agn_rec);
1740     --------------------------------------------
1741     -- Call the INSERT_ROW for each child record
1742     --------------------------------------------
1743     insert_row(
1744       p_init_msg_list,
1745       x_return_status,
1746       x_msg_count,
1747       x_msg_data,
1748       l_agn_rec,
1749       lx_agn_rec
1750     );
1751     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1752       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1753     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1754       RAISE Okc_Api.G_EXCEPTION_ERROR;
1755     END IF;
1756     migrate(lx_agn_rec, l_def_agnv_rec);
1757     -- Set OUT values
1758     x_agnv_rec := l_def_agnv_rec;
1759     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1760   EXCEPTION
1761     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1762       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1763       (
1764         l_api_name,
1765         G_PKG_NAME,
1766         'OKC_API.G_RET_STS_ERROR',
1767         x_msg_count,
1768         x_msg_data,
1769         '_PVT'
1770       );
1771     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1772       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1773       (
1774         l_api_name,
1775         G_PKG_NAME,
1776         'OKC_API.G_RET_STS_UNEXP_ERROR',
1777         x_msg_count,
1778         x_msg_data,
1779         '_PVT'
1780       );
1781     WHEN OTHERS THEN
1782       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1783       (
1784         l_api_name,
1785         G_PKG_NAME,
1786         'OTHERS',
1787         x_msg_count,
1788         x_msg_data,
1789         '_PVT'
1790       );
1791   END insert_row;
1792   ----------------------------------------
1793   -- PL/SQL TBL insert_row for:AGNV_TBL --
1794   ----------------------------------------
1795   PROCEDURE insert_row(
1796     p_api_version                  IN NUMBER,
1797     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1798     x_return_status                OUT NOCOPY VARCHAR2,
1799     x_msg_count                    OUT NOCOPY NUMBER,
1800     x_msg_data                     OUT NOCOPY VARCHAR2,
1801     p_agnv_tbl                     IN agnv_tbl_type,
1802     x_agnv_tbl                     OUT NOCOPY agnv_tbl_type) IS
1803 
1804     l_api_version                 CONSTANT NUMBER := 1;
1805     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1806     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1807 	l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1808     i                              NUMBER := 0;
1809   BEGIN
1810     Okc_Api.init_msg_list(p_init_msg_list);
1811     -- Make sure PL/SQL table has records in it before passing
1812     IF (p_agnv_tbl.COUNT > 0) THEN
1813       i := p_agnv_tbl.FIRST;
1814       LOOP
1815         insert_row (
1816           p_api_version                  => p_api_version,
1817           p_init_msg_list                => Okc_Api.G_FALSE,
1818           x_return_status                => x_return_status,
1819           x_msg_count                    => x_msg_count,
1820           x_msg_data                     => x_msg_data,
1821           p_agnv_rec                     => p_agnv_tbl(i),
1822           x_agnv_rec                     => x_agnv_tbl(i));
1823 /* Begin Post Generation Change */
1824      -- store the highest degree of error
1825 	IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1826       IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1827          l_overall_status := x_return_status;
1828       END IF;
1829 	END IF;
1830 /* End Post Generation Change */
1831 
1832         EXIT WHEN (i = p_agnv_tbl.LAST);
1833         i := p_agnv_tbl.NEXT(i);
1834       END LOOP;
1835     END IF;
1836         x_return_status := l_overall_status;
1837 
1838   EXCEPTION
1839     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1840       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1841       (
1842         l_api_name,
1843         G_PKG_NAME,
1844         'OKC_API.G_RET_STS_ERROR',
1845         x_msg_count,
1846         x_msg_data,
1847         '_PVT'
1848       );
1849     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1850       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1851       (
1852         l_api_name,
1853         G_PKG_NAME,
1854         'OKC_API.G_RET_STS_UNEXP_ERROR',
1855         x_msg_count,
1856         x_msg_data,
1857         '_PVT'
1858       );
1859     WHEN OTHERS THEN
1860       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1861       (
1862         l_api_name,
1863         G_PKG_NAME,
1864         'OTHERS',
1865         x_msg_count,
1866         x_msg_data,
1867         '_PVT'
1868       );
1869   END insert_row;
1870 
1871   ---------------------------------------------------------------------------
1872   -- PROCEDURE lock_row
1873   ---------------------------------------------------------------------------
1874   -------------------------------------
1875   -- lock_row for:OKL_ACCRUAL_GNRTNS --
1876   -------------------------------------
1877   PROCEDURE lock_row(
1878     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1879     x_return_status                OUT NOCOPY VARCHAR2,
1880     x_msg_count                    OUT NOCOPY NUMBER,
1881     x_msg_data                     OUT NOCOPY VARCHAR2,
1882     p_agn_rec                      IN agn_rec_type) IS
1883 
1884     E_Resource_Busy               EXCEPTION;
1885     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1886     CURSOR lock_csr (p_agn_rec IN agn_rec_type) IS
1887     SELECT OBJECT_VERSION_NUMBER
1888       FROM OKL_ACCRUAL_GNRTNS
1889      WHERE ID = p_agn_rec.id
1890        AND OBJECT_VERSION_NUMBER = p_agn_rec.object_version_number
1891     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1892 
1893     CURSOR  lchk_csr (p_agn_rec IN agn_rec_type) IS
1894     SELECT OBJECT_VERSION_NUMBER
1895       FROM OKL_ACCRUAL_GNRTNS
1896     WHERE ID = p_agn_rec.id;
1897     l_api_version                 CONSTANT NUMBER := 1;
1898     l_api_name                     CONSTANT VARCHAR2(30) := 'GNRTNS_lock_row';
1899     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1900     l_object_version_number       OKL_ACCRUAL_GNRTNS.OBJECT_VERSION_NUMBER%TYPE;
1901     lc_object_version_number      OKL_ACCRUAL_GNRTNS.OBJECT_VERSION_NUMBER%TYPE;
1902     l_row_notfound                BOOLEAN := FALSE;
1903     lc_row_notfound               BOOLEAN := FALSE;
1904   BEGIN
1905     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1906                                               p_init_msg_list,
1907                                               '_PVT',
1908                                               x_return_status);
1909     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1910       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1911     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1912       RAISE Okc_Api.G_EXCEPTION_ERROR;
1913     END IF;
1914     BEGIN
1915       OPEN lock_csr(p_agn_rec);
1916       FETCH lock_csr INTO l_object_version_number;
1917       l_row_notfound := lock_csr%NOTFOUND;
1918       CLOSE lock_csr;
1919     EXCEPTION
1920       WHEN E_Resource_Busy THEN
1921         IF (lock_csr%ISOPEN) THEN
1922           CLOSE lock_csr;
1923         END IF;
1924         Okc_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1925         RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
1926     END;
1927 
1928     IF ( l_row_notfound ) THEN
1929       OPEN lchk_csr(p_agn_rec);
1930       FETCH lchk_csr INTO lc_object_version_number;
1931       lc_row_notfound := lchk_csr%NOTFOUND;
1932       CLOSE lchk_csr;
1933     END IF;
1934     IF (lc_row_notfound) THEN
1935       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1936       RAISE Okc_Api.G_EXCEPTION_ERROR;
1937     ELSIF lc_object_version_number > p_agn_rec.object_version_number THEN
1938       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1939       RAISE Okc_Api.G_EXCEPTION_ERROR;
1940     ELSIF lc_object_version_number <> p_agn_rec.object_version_number THEN
1941       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1942       RAISE Okc_Api.G_EXCEPTION_ERROR;
1943     ELSIF lc_object_version_number = -1 THEN
1944       Okc_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1945       RAISE Okc_Api.G_EXCEPTION_ERROR;
1946     END IF;
1947     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1948   EXCEPTION
1949     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1950       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1951       (
1952         l_api_name,
1953         G_PKG_NAME,
1954         'OKC_API.G_RET_STS_ERROR',
1955         x_msg_count,
1956         x_msg_data,
1957         '_PVT'
1958       );
1959     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1960       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1961       (
1962         l_api_name,
1963         G_PKG_NAME,
1964         'OKC_API.G_RET_STS_UNEXP_ERROR',
1965         x_msg_count,
1966         x_msg_data,
1967         '_PVT'
1968       );
1969     WHEN OTHERS THEN
1970       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1971       (
1972         l_api_name,
1973         G_PKG_NAME,
1974         'OTHERS',
1975         x_msg_count,
1976         x_msg_data,
1977         '_PVT'
1978       );
1979   END lock_row;
1980   ---------------------------------------
1981   -- lock_row for:OKL_ACCRUAL_GNRTNS_V --
1982   ---------------------------------------
1983   PROCEDURE lock_row(
1984     p_api_version                  IN NUMBER,
1985     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1986     x_return_status                OUT NOCOPY VARCHAR2,
1987     x_msg_count                    OUT NOCOPY NUMBER,
1988     x_msg_data                     OUT NOCOPY VARCHAR2,
1989     p_agnv_rec                     IN agnv_rec_type) IS
1990 
1991     l_api_version                 CONSTANT NUMBER := 1;
1992     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
1993     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1994     l_agn_rec                      agn_rec_type;
1995   BEGIN
1996     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1997                                               G_PKG_NAME,
1998                                               p_init_msg_list,
1999                                               l_api_version,
2000                                               p_api_version,
2001                                               '_PVT',
2002                                               x_return_status);
2003     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2004       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2005     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2006       RAISE Okc_Api.G_EXCEPTION_ERROR;
2007     END IF;
2008     --------------------------------------
2009     -- Move VIEW record to "Child" records
2010     --------------------------------------
2011     migrate(p_agnv_rec, l_agn_rec);
2012     --------------------------------------------
2013     -- Call the LOCK_ROW for each child record
2014     --------------------------------------------
2015     lock_row(
2016       p_init_msg_list,
2017       x_return_status,
2018       x_msg_count,
2019       x_msg_data,
2020       l_agn_rec
2021     );
2022     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2023       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2024     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2025       RAISE Okc_Api.G_EXCEPTION_ERROR;
2026     END IF;
2027     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2028   EXCEPTION
2029     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2030       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2031       (
2032         l_api_name,
2033         G_PKG_NAME,
2034         'OKC_API.G_RET_STS_ERROR',
2035         x_msg_count,
2036         x_msg_data,
2037         '_PVT'
2038       );
2039     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2040       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2041       (
2042         l_api_name,
2043         G_PKG_NAME,
2044         'OKC_API.G_RET_STS_UNEXP_ERROR',
2045         x_msg_count,
2046         x_msg_data,
2047         '_PVT'
2048       );
2049     WHEN OTHERS THEN
2050       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2051       (
2052         l_api_name,
2053         G_PKG_NAME,
2054         'OTHERS',
2055         x_msg_count,
2056         x_msg_data,
2057         '_PVT'
2058       );
2059   END lock_row;
2060   --------------------------------------
2061   -- PL/SQL TBL lock_row for:AGNV_TBL --
2062   --------------------------------------
2063   PROCEDURE lock_row(
2064     p_api_version                  IN NUMBER,
2065     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2066     x_return_status                OUT NOCOPY VARCHAR2,
2067     x_msg_count                    OUT NOCOPY NUMBER,
2068     x_msg_data                     OUT NOCOPY VARCHAR2,
2069     p_agnv_tbl                     IN agnv_tbl_type) IS
2070 
2071     l_api_version                 CONSTANT NUMBER := 1;
2072     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2073     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2074 	l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2075     i                              NUMBER := 0;
2076   BEGIN
2077     Okc_Api.init_msg_list(p_init_msg_list);
2078     -- Make sure PL/SQL table has records in it before passing
2079     IF (p_agnv_tbl.COUNT > 0) THEN
2080       i := p_agnv_tbl.FIRST;
2081       LOOP
2082         lock_row (
2083           p_api_version                  => p_api_version,
2084           p_init_msg_list                => Okc_Api.G_FALSE,
2085           x_return_status                => x_return_status,
2086           x_msg_count                    => x_msg_count,
2087           x_msg_data                     => x_msg_data,
2088           p_agnv_rec                     => p_agnv_tbl(i));
2089 /* Begin Post Generation Change */
2090      -- store the highest degree of error
2091 	IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2092       IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2093          l_overall_status := x_return_status;
2094       END IF;
2095 	END IF;
2096 /* End Post Generation Change */
2097         EXIT WHEN (i = p_agnv_tbl.LAST);
2098         i := p_agnv_tbl.NEXT(i);
2099       END LOOP;
2100     END IF;
2101   EXCEPTION
2102     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2103       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2104       (
2105         l_api_name,
2106         G_PKG_NAME,
2107         'OKC_API.G_RET_STS_ERROR',
2108         x_msg_count,
2109         x_msg_data,
2110         '_PVT'
2111       );
2112     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2113       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2114       (
2115         l_api_name,
2116         G_PKG_NAME,
2117         'OKC_API.G_RET_STS_UNEXP_ERROR',
2118         x_msg_count,
2119         x_msg_data,
2120         '_PVT'
2121       );
2122     WHEN OTHERS THEN
2123       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2124       (
2125         l_api_name,
2126         G_PKG_NAME,
2127         'OTHERS',
2128         x_msg_count,
2129         x_msg_data,
2130         '_PVT'
2131       );
2132   END lock_row;
2133 
2134   ---------------------------------------------------------------------------
2135   -- PROCEDURE update_row
2136   ---------------------------------------------------------------------------
2137   ---------------------------------------
2138   -- update_row for:OKL_ACCRUAL_GNRTNS --
2139   ---------------------------------------
2140   PROCEDURE update_row(
2141     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2142     x_return_status                OUT NOCOPY VARCHAR2,
2143     x_msg_count                    OUT NOCOPY NUMBER,
2144     x_msg_data                     OUT NOCOPY VARCHAR2,
2145     p_agn_rec                      IN agn_rec_type,
2146     x_agn_rec                      OUT NOCOPY agn_rec_type) IS
2147 
2148     l_api_version                 CONSTANT NUMBER := 1;
2149     l_api_name                     CONSTANT VARCHAR2(30) := 'GNRTNS_update_row';
2150     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2151     l_agn_rec                      agn_rec_type := p_agn_rec;
2152     l_def_agn_rec                  agn_rec_type;
2153     l_row_notfound                 BOOLEAN := TRUE;
2154     ----------------------------------
2155     -- FUNCTION populate_new_record --
2156     ----------------------------------
2157     FUNCTION populate_new_record (
2158       p_agn_rec	IN agn_rec_type,
2159       x_agn_rec	OUT NOCOPY agn_rec_type
2160     ) RETURN VARCHAR2 IS
2161       l_agn_rec                      agn_rec_type;
2162       l_row_notfound                 BOOLEAN := TRUE;
2163       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2164     BEGIN
2165       x_agn_rec := p_agn_rec;
2166       -- Get current database values
2167       l_agn_rec := get_rec(p_agn_rec, l_row_notfound);
2168       IF (l_row_notfound) THEN
2169         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2170       END IF;
2171       IF (x_agn_rec.id = Okc_Api.G_MISS_NUM)
2172       THEN
2173         x_agn_rec.id := l_agn_rec.id;
2174       END IF;
2175       IF (x_agn_rec.line_number = Okc_Api.G_MISS_NUM)
2176       THEN
2177         x_agn_rec.line_number := l_agn_rec.line_number;
2178       END IF;
2179       IF (x_agn_rec.version = Okc_Api.G_MISS_CHAR)
2180       THEN
2181         x_agn_rec.version := l_agn_rec.version;
2182       END IF;
2183       IF (x_agn_rec.aro_code = Okc_Api.G_MISS_CHAR)
2184       THEN
2185         x_agn_rec.aro_code := l_agn_rec.aro_code;
2186       END IF;
2187       IF (x_agn_rec.arlo_code = Okc_Api.G_MISS_CHAR)
2188       THEN
2189         x_agn_rec.arlo_code := l_agn_rec.arlo_code;
2190       END IF;
2191       IF (x_agn_rec.acro_code = Okc_Api.G_MISS_CHAR)
2192       THEN
2193         x_agn_rec.acro_code := l_agn_rec.acro_code;
2194       END IF;
2195       IF (x_agn_rec.right_operand_literal = Okc_Api.G_MISS_CHAR)
2196       THEN
2197         x_agn_rec.right_operand_literal := l_agn_rec.right_operand_literal;
2198       END IF;
2199       IF (x_agn_rec.object_version_number = Okc_Api.G_MISS_NUM)
2200       THEN
2201         x_agn_rec.object_version_number := l_agn_rec.object_version_number;
2202       END IF;
2203       IF (x_agn_rec.left_parentheses = Okc_Api.G_MISS_CHAR)
2204       THEN
2205         x_agn_rec.left_parentheses := l_agn_rec.left_parentheses;
2206       END IF;
2207       IF (x_agn_rec.right_parentheses = Okc_Api.G_MISS_CHAR)
2208       THEN
2209         x_agn_rec.right_parentheses := l_agn_rec.right_parentheses;
2210       END IF;
2211       IF (x_agn_rec.from_date = Okc_Api.G_MISS_DATE)
2212       THEN
2213         x_agn_rec.from_date := l_agn_rec.from_date;
2214       END IF;
2215       IF (x_agn_rec.TO_DATE = Okc_Api.G_MISS_DATE)
2216       THEN
2217         x_agn_rec.TO_DATE := l_agn_rec.TO_DATE;
2218       END IF;
2219       IF (x_agn_rec.org_id = Okc_Api.G_MISS_NUM)
2220       THEN
2221         x_agn_rec.org_id := l_agn_rec.org_id;
2222       END IF;
2223       IF (x_agn_rec.created_by = Okc_Api.G_MISS_NUM)
2224       THEN
2225         x_agn_rec.created_by := l_agn_rec.created_by;
2226       END IF;
2227       IF (x_agn_rec.creation_date = Okc_Api.G_MISS_DATE)
2228       THEN
2229         x_agn_rec.creation_date := l_agn_rec.creation_date;
2230       END IF;
2231       IF (x_agn_rec.last_updated_by = Okc_Api.G_MISS_NUM)
2232       THEN
2233         x_agn_rec.last_updated_by := l_agn_rec.last_updated_by;
2234       END IF;
2235       IF (x_agn_rec.last_update_date = Okc_Api.G_MISS_DATE)
2236       THEN
2237         x_agn_rec.last_update_date := l_agn_rec.last_update_date;
2238       END IF;
2239       IF (x_agn_rec.last_update_login = Okc_Api.G_MISS_NUM)
2240       THEN
2241         x_agn_rec.last_update_login := l_agn_rec.last_update_login;
2242       END IF;
2243       RETURN(l_return_status);
2244     END populate_new_record;
2245     -------------------------------------------
2246     -- Set_Attributes for:OKL_ACCRUAL_GNRTNS --
2247     -------------------------------------------
2248     FUNCTION Set_Attributes (
2249       p_agn_rec IN  agn_rec_type,
2250       x_agn_rec OUT NOCOPY agn_rec_type
2251     ) RETURN VARCHAR2 IS
2252       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2253     BEGIN
2254       x_agn_rec := p_agn_rec;
2255       RETURN(l_return_status);
2256     END Set_Attributes;
2257   BEGIN
2258     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2259                                               p_init_msg_list,
2260                                               '_PVT',
2261                                               x_return_status);
2262     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2263       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2264     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2265       RAISE Okc_Api.G_EXCEPTION_ERROR;
2266     END IF;
2267     --- Setting item attributes
2268     l_return_status := Set_Attributes(
2269       p_agn_rec,                         -- IN
2270       l_agn_rec);                        -- OUT
2271     --- If any errors happen abort API
2272     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2273       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2274     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2275       RAISE Okc_Api.G_EXCEPTION_ERROR;
2276     END IF;
2277     l_return_status := populate_new_record(l_agn_rec, l_def_agn_rec);
2278     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2279       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2280     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2281       RAISE Okc_Api.G_EXCEPTION_ERROR;
2282     END IF;
2283     UPDATE  OKL_ACCRUAL_GNRTNS
2284     SET LINE_NUMBER = l_def_agn_rec.line_number,
2285         VERSION = l_def_agn_rec.version,
2286         ARO_CODE = l_def_agn_rec.aro_code,
2287         ARLO_CODE = l_def_agn_rec.arlo_code,
2288         ACRO_CODE = l_def_agn_rec.acro_code,
2289         RIGHT_OPERAND_LITERAL = l_def_agn_rec.right_operand_literal,
2290         OBJECT_VERSION_NUMBER = l_def_agn_rec.object_version_number,
2291         LEFT_PARENTHESES = l_def_agn_rec.left_parentheses,
2292         RIGHT_PARENTHESES = l_def_agn_rec.right_parentheses,
2293         FROM_DATE = l_def_agn_rec.from_date,
2294         TO_DATE = l_def_agn_rec.TO_DATE,
2295         ORG_ID = l_def_agn_rec.org_id,
2296         CREATED_BY = l_def_agn_rec.created_by,
2297         CREATION_DATE = l_def_agn_rec.creation_date,
2298         LAST_UPDATED_BY = l_def_agn_rec.last_updated_by,
2299         LAST_UPDATE_DATE = l_def_agn_rec.last_update_date,
2300         LAST_UPDATE_LOGIN = l_def_agn_rec.last_update_login
2301     WHERE ID = l_def_agn_rec.id;
2302 
2303     x_agn_rec := l_def_agn_rec;
2304     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2305   EXCEPTION
2306     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2307       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2308       (
2309         l_api_name,
2310         G_PKG_NAME,
2311         'OKC_API.G_RET_STS_ERROR',
2312         x_msg_count,
2313         x_msg_data,
2314         '_PVT'
2315       );
2316     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2317       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2318       (
2319         l_api_name,
2320         G_PKG_NAME,
2321         'OKC_API.G_RET_STS_UNEXP_ERROR',
2322         x_msg_count,
2323         x_msg_data,
2324         '_PVT'
2325       );
2326     WHEN OTHERS THEN
2327       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2328       (
2329         l_api_name,
2330         G_PKG_NAME,
2331         'OTHERS',
2332         x_msg_count,
2333         x_msg_data,
2334         '_PVT'
2335       );
2336   END update_row;
2337   -----------------------------------------
2338   -- update_row for:OKL_ACCRUAL_GNRTNS_V --
2339   -----------------------------------------
2340   PROCEDURE update_row(
2341     p_api_version                  IN NUMBER,
2342     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2343     x_return_status                OUT NOCOPY VARCHAR2,
2344     x_msg_count                    OUT NOCOPY NUMBER,
2345     x_msg_data                     OUT NOCOPY VARCHAR2,
2346     p_agnv_rec                     IN agnv_rec_type,
2347     x_agnv_rec                     OUT NOCOPY agnv_rec_type) IS
2348 
2349     l_api_version                 CONSTANT NUMBER := 1;
2350     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
2351     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2352     l_agnv_rec                     agnv_rec_type := p_agnv_rec;
2353     l_def_agnv_rec                 agnv_rec_type;
2354     l_agn_rec                      agn_rec_type;
2355     lx_agn_rec                     agn_rec_type;
2356     -------------------------------
2357     -- FUNCTION fill_who_columns --
2358     -------------------------------
2359     FUNCTION fill_who_columns (
2360       p_agnv_rec	IN agnv_rec_type
2361     ) RETURN agnv_rec_type IS
2362       l_agnv_rec	agnv_rec_type := p_agnv_rec;
2363     BEGIN
2364       l_agnv_rec.LAST_UPDATE_DATE := SYSDATE;
2365       l_agnv_rec.LAST_UPDATED_BY := Fnd_Global.User_Id;
2366       l_agnv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
2367       RETURN(l_agnv_rec);
2368     END fill_who_columns;
2369     ----------------------------------
2370     -- FUNCTION populate_new_record --
2371     ----------------------------------
2372     FUNCTION populate_new_record (
2373       p_agnv_rec	IN agnv_rec_type,
2374       x_agnv_rec	OUT NOCOPY agnv_rec_type
2375     ) RETURN VARCHAR2 IS
2376       l_agnv_rec                     agnv_rec_type;
2377       l_row_notfound                 BOOLEAN := TRUE;
2378       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2379     BEGIN
2380       x_agnv_rec := p_agnv_rec;
2381       -- Get current database values
2382       l_agnv_rec := get_rec(p_agnv_rec, l_row_notfound);
2383       IF (l_row_notfound) THEN
2384         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2385       END IF;
2386       IF (x_agnv_rec.id = Okc_Api.G_MISS_NUM)
2387       THEN
2388         x_agnv_rec.id := l_agnv_rec.id;
2389       END IF;
2390       IF (x_agnv_rec.object_version_number = Okc_Api.G_MISS_NUM)
2391       THEN
2392         x_agnv_rec.object_version_number := l_agnv_rec.object_version_number;
2393       END IF;
2394       IF (x_agnv_rec.aro_code = Okc_Api.G_MISS_CHAR)
2395       THEN
2396         x_agnv_rec.aro_code := l_agnv_rec.aro_code;
2397       END IF;
2398       IF (x_agnv_rec.arlo_code = Okc_Api.G_MISS_CHAR)
2399       THEN
2400         x_agnv_rec.arlo_code := l_agnv_rec.arlo_code;
2401       END IF;
2402       IF (x_agnv_rec.acro_code = Okc_Api.G_MISS_CHAR)
2403       THEN
2404         x_agnv_rec.acro_code := l_agnv_rec.acro_code;
2405       END IF;
2406       IF (x_agnv_rec.line_number = Okc_Api.G_MISS_NUM)
2407       THEN
2408         x_agnv_rec.line_number := l_agnv_rec.line_number;
2409       END IF;
2410       IF (x_agnv_rec.version = Okc_Api.G_MISS_CHAR)
2411       THEN
2412         x_agnv_rec.version := l_agnv_rec.version;
2413       END IF;
2414       IF (x_agnv_rec.left_parentheses = Okc_Api.G_MISS_CHAR)
2415       THEN
2416         x_agnv_rec.left_parentheses := l_agnv_rec.left_parentheses;
2417       END IF;
2418       IF (x_agnv_rec.right_operand_literal = Okc_Api.G_MISS_CHAR)
2419       THEN
2420         x_agnv_rec.right_operand_literal := l_agnv_rec.right_operand_literal;
2421       END IF;
2422       IF (x_agnv_rec.right_parentheses = Okc_Api.G_MISS_CHAR)
2423       THEN
2424         x_agnv_rec.right_parentheses := l_agnv_rec.right_parentheses;
2425       END IF;
2426       IF (x_agnv_rec.from_date = Okc_Api.G_MISS_DATE)
2427       THEN
2428         x_agnv_rec.from_date := l_agnv_rec.from_date;
2429       END IF;
2430       IF (x_agnv_rec.TO_DATE = Okc_Api.G_MISS_DATE)
2431       THEN
2432         x_agnv_rec.TO_DATE := l_agnv_rec.TO_DATE;
2433       END IF;
2434       IF (x_agnv_rec.org_id = Okc_Api.G_MISS_NUM)
2435       THEN
2436         x_agnv_rec.org_id := l_agnv_rec.org_id;
2437       END IF;
2438       IF (x_agnv_rec.created_by = Okc_Api.G_MISS_NUM)
2439       THEN
2440         x_agnv_rec.created_by := l_agnv_rec.created_by;
2441       END IF;
2442       IF (x_agnv_rec.creation_date = Okc_Api.G_MISS_DATE)
2443       THEN
2444         x_agnv_rec.creation_date := l_agnv_rec.creation_date;
2445       END IF;
2446       IF (x_agnv_rec.last_updated_by = Okc_Api.G_MISS_NUM)
2447       THEN
2448         x_agnv_rec.last_updated_by := l_agnv_rec.last_updated_by;
2449       END IF;
2450       IF (x_agnv_rec.last_update_date = Okc_Api.G_MISS_DATE)
2451       THEN
2452         x_agnv_rec.last_update_date := l_agnv_rec.last_update_date;
2453       END IF;
2454       IF (x_agnv_rec.last_update_login = Okc_Api.G_MISS_NUM)
2455       THEN
2456         x_agnv_rec.last_update_login := l_agnv_rec.last_update_login;
2457       END IF;
2458       RETURN(l_return_status);
2459     END populate_new_record;
2460     ---------------------------------------------
2461     -- Set_Attributes for:OKL_ACCRUAL_GNRTNS_V --
2462     ---------------------------------------------
2463     FUNCTION Set_Attributes (
2464       p_agnv_rec IN  agnv_rec_type,
2465       x_agnv_rec OUT NOCOPY agnv_rec_type
2466     ) RETURN VARCHAR2 IS
2467       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2468     BEGIN
2469       x_agnv_rec := p_agnv_rec;
2470       RETURN(l_return_status);
2471     END Set_Attributes;
2472   BEGIN
2473     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2474                                               G_PKG_NAME,
2475                                               p_init_msg_list,
2476                                               l_api_version,
2477                                               p_api_version,
2478                                               '_PVT',
2479                                               x_return_status);
2480     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2481       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2482     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2483       RAISE Okc_Api.G_EXCEPTION_ERROR;
2484     END IF;
2485     --- Setting item attributes
2486     l_return_status := Set_Attributes(
2487       p_agnv_rec,                        -- IN
2488       l_agnv_rec);                       -- OUT
2489     --- If any errors happen abort API
2490     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2491       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2492     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2493       RAISE Okc_Api.G_EXCEPTION_ERROR;
2494     END IF;
2495     l_return_status := populate_new_record(l_agnv_rec, l_def_agnv_rec);
2496     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2497       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2498     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2499       RAISE Okc_Api.G_EXCEPTION_ERROR;
2500     END IF;
2501     l_def_agnv_rec := fill_who_columns(l_def_agnv_rec);
2502     --- Validate all non-missing attributes (Item Level Validation)
2503     l_return_status := Validate_Attributes(l_def_agnv_rec);
2504     --- If any errors happen abort API
2505     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2506       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2507     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2508       RAISE Okc_Api.G_EXCEPTION_ERROR;
2509     END IF;
2510     l_return_status := Validate_Record(l_def_agnv_rec);
2511     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2512       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2513     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2514       RAISE Okc_Api.G_EXCEPTION_ERROR;
2515     END IF;
2516 
2517     --------------------------------------
2518     -- Move VIEW record to "Child" records
2519     --------------------------------------
2520     migrate(l_def_agnv_rec, l_agn_rec);
2521     --------------------------------------------
2522     -- Call the UPDATE_ROW for each child record
2523     --------------------------------------------
2524     update_row(
2525       p_init_msg_list,
2526       x_return_status,
2527       x_msg_count,
2528       x_msg_data,
2529       l_agn_rec,
2530       lx_agn_rec
2531     );
2532     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2533       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2534     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2535       RAISE Okc_Api.G_EXCEPTION_ERROR;
2536     END IF;
2537     migrate(lx_agn_rec, l_def_agnv_rec);
2538     x_agnv_rec := l_def_agnv_rec;
2539     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2540   EXCEPTION
2541     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2542       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2543       (
2544         l_api_name,
2545         G_PKG_NAME,
2546         'OKC_API.G_RET_STS_ERROR',
2547         x_msg_count,
2548         x_msg_data,
2549         '_PVT'
2550       );
2551     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2552       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2553       (
2554         l_api_name,
2555         G_PKG_NAME,
2556         'OKC_API.G_RET_STS_UNEXP_ERROR',
2557         x_msg_count,
2558         x_msg_data,
2559         '_PVT'
2560       );
2561     WHEN OTHERS THEN
2562       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2563       (
2564         l_api_name,
2565         G_PKG_NAME,
2566         'OTHERS',
2567         x_msg_count,
2568         x_msg_data,
2569         '_PVT'
2570       );
2571   END update_row;
2572   ----------------------------------------
2573   -- PL/SQL TBL update_row for:AGNV_TBL --
2574   ----------------------------------------
2575   PROCEDURE update_row(
2576     p_api_version                  IN NUMBER,
2577     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2578     x_return_status                OUT NOCOPY VARCHAR2,
2579     x_msg_count                    OUT NOCOPY NUMBER,
2580     x_msg_data                     OUT NOCOPY VARCHAR2,
2581     p_agnv_tbl                     IN agnv_tbl_type,
2582     x_agnv_tbl                     OUT NOCOPY agnv_tbl_type) IS
2583 
2584     l_api_version                 CONSTANT NUMBER := 1;
2585     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2586     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2587     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2588     i                              NUMBER := 0;
2589   BEGIN
2590     Okc_Api.init_msg_list(p_init_msg_list);
2591     -- Make sure PL/SQL table has records in it before passing
2592     IF (p_agnv_tbl.COUNT > 0) THEN
2593       i := p_agnv_tbl.FIRST;
2594       LOOP
2595         update_row (
2596           p_api_version                  => p_api_version,
2597           p_init_msg_list                => Okc_Api.G_FALSE,
2598           x_return_status                => x_return_status,
2599           x_msg_count                    => x_msg_count,
2600           x_msg_data                     => x_msg_data,
2601           p_agnv_rec                     => p_agnv_tbl(i),
2602           x_agnv_rec                     => x_agnv_tbl(i));
2603 /* Begin Post Generation Change */
2604      -- store the highest degree of error
2605 	IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2606       IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2607          l_overall_status := x_return_status;
2608       END IF;
2609 	END IF;
2610 /* End Post Generation Change */
2611         EXIT WHEN (i = p_agnv_tbl.LAST);
2612         i := p_agnv_tbl.NEXT(i);
2613       END LOOP;
2614     END IF;
2615        x_return_status := l_overall_status;
2616 
2617   EXCEPTION
2618     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2619       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2620       (
2621         l_api_name,
2622         G_PKG_NAME,
2623         'OKC_API.G_RET_STS_ERROR',
2624         x_msg_count,
2625         x_msg_data,
2626         '_PVT'
2627       );
2628     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2629       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2630       (
2631         l_api_name,
2632         G_PKG_NAME,
2633         'OKC_API.G_RET_STS_UNEXP_ERROR',
2634         x_msg_count,
2635         x_msg_data,
2636         '_PVT'
2637       );
2638     WHEN OTHERS THEN
2639       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2640       (
2641         l_api_name,
2642         G_PKG_NAME,
2643         'OTHERS',
2644         x_msg_count,
2645         x_msg_data,
2646         '_PVT'
2647       );
2648   END update_row;
2649 
2650   ---------------------------------------------------------------------------
2651   -- PROCEDURE delete_row
2652   ---------------------------------------------------------------------------
2653   ---------------------------------------
2654   -- delete_row for:OKL_ACCRUAL_GNRTNS --
2655   ---------------------------------------
2656   PROCEDURE delete_row(
2657     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2658     x_return_status                OUT NOCOPY VARCHAR2,
2659     x_msg_count                    OUT NOCOPY NUMBER,
2660     x_msg_data                     OUT NOCOPY VARCHAR2,
2661     p_agn_rec                      IN agn_rec_type) IS
2662 
2663     l_api_version                 CONSTANT NUMBER := 1;
2664     l_api_name                     CONSTANT VARCHAR2(30) := 'GNRTNS_delete_row';
2665     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2666     l_agn_rec                      agn_rec_type:= p_agn_rec;
2667     l_row_notfound                 BOOLEAN := TRUE;
2668   BEGIN
2669     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2670                                               p_init_msg_list,
2671                                               '_PVT',
2672                                               x_return_status);
2673     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2674       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2675     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2676       RAISE Okc_Api.G_EXCEPTION_ERROR;
2677     END IF;
2678     DELETE FROM OKL_ACCRUAL_GNRTNS
2679      WHERE ID = l_agn_rec.id;
2680 
2681     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2682   EXCEPTION
2683     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2684       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2685       (
2686         l_api_name,
2687         G_PKG_NAME,
2688         'OKC_API.G_RET_STS_ERROR',
2689         x_msg_count,
2690         x_msg_data,
2691         '_PVT'
2692       );
2693     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2694       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2695       (
2696         l_api_name,
2697         G_PKG_NAME,
2698         'OKC_API.G_RET_STS_UNEXP_ERROR',
2699         x_msg_count,
2700         x_msg_data,
2701         '_PVT'
2702       );
2703     WHEN OTHERS THEN
2704       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2705       (
2706         l_api_name,
2707         G_PKG_NAME,
2708         'OTHERS',
2709         x_msg_count,
2710         x_msg_data,
2711         '_PVT'
2712       );
2713   END delete_row;
2714   -----------------------------------------
2715   -- delete_row for:OKL_ACCRUAL_GNRTNS_V --
2716   -----------------------------------------
2717   PROCEDURE delete_row(
2718     p_api_version                  IN NUMBER,
2719     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2720     x_return_status                OUT NOCOPY VARCHAR2,
2721     x_msg_count                    OUT NOCOPY NUMBER,
2722     x_msg_data                     OUT NOCOPY VARCHAR2,
2723     p_agnv_rec                     IN agnv_rec_type) IS
2724 
2725     l_api_version                 CONSTANT NUMBER := 1;
2726     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
2727     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2728     l_agnv_rec                     agnv_rec_type := p_agnv_rec;
2729     l_agn_rec                      agn_rec_type;
2730   BEGIN
2731     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2732                                               G_PKG_NAME,
2733                                               p_init_msg_list,
2734                                               l_api_version,
2735                                               p_api_version,
2736                                               '_PVT',
2737                                               x_return_status);
2738     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2739       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2740     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2741       RAISE Okc_Api.G_EXCEPTION_ERROR;
2742     END IF;
2743     --------------------------------------
2744     -- Move VIEW record to "Child" records
2745     --------------------------------------
2746     migrate(l_agnv_rec, l_agn_rec);
2747     --------------------------------------------
2748     -- Call the DELETE_ROW for each child record
2749     --------------------------------------------
2750     delete_row(
2751       p_init_msg_list,
2752       x_return_status,
2753       x_msg_count,
2754       x_msg_data,
2755       l_agn_rec
2756     );
2757     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2758       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2759     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2760       RAISE Okc_Api.G_EXCEPTION_ERROR;
2761     END IF;
2762     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2763   EXCEPTION
2764     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2765       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2766       (
2767         l_api_name,
2768         G_PKG_NAME,
2769         'OKC_API.G_RET_STS_ERROR',
2770         x_msg_count,
2771         x_msg_data,
2772         '_PVT'
2773       );
2774     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2775       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2776       (
2777         l_api_name,
2778         G_PKG_NAME,
2779         'OKC_API.G_RET_STS_UNEXP_ERROR',
2780         x_msg_count,
2781         x_msg_data,
2782         '_PVT'
2783       );
2784     WHEN OTHERS THEN
2785       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2786       (
2787         l_api_name,
2788         G_PKG_NAME,
2789         'OTHERS',
2790         x_msg_count,
2791         x_msg_data,
2792         '_PVT'
2793       );
2794   END delete_row;
2795   ----------------------------------------
2796   -- PL/SQL TBL delete_row for:AGNV_TBL --
2797   ----------------------------------------
2798   PROCEDURE delete_row(
2799     p_api_version                  IN NUMBER,
2800     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2801     x_return_status                OUT NOCOPY VARCHAR2,
2802     x_msg_count                    OUT NOCOPY NUMBER,
2803     x_msg_data                     OUT NOCOPY VARCHAR2,
2804     p_agnv_tbl                     IN agnv_tbl_type) IS
2805 
2806     l_api_version                 CONSTANT NUMBER := 1;
2807     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2808     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2809     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2810     i                              NUMBER := 0;
2811   BEGIN
2812     Okc_Api.init_msg_list(p_init_msg_list);
2813     -- Make sure PL/SQL table has records in it before passing
2814     IF (p_agnv_tbl.COUNT > 0) THEN
2815       i := p_agnv_tbl.FIRST;
2816       LOOP
2817         delete_row (
2818           p_api_version                  => p_api_version,
2819           p_init_msg_list                => Okc_Api.G_FALSE,
2820           x_return_status                => x_return_status,
2821           x_msg_count                    => x_msg_count,
2822           x_msg_data                     => x_msg_data,
2823           p_agnv_rec                     => p_agnv_tbl(i));
2824 /* Begin Post Generation Change */
2825      -- store the highest degree of error
2826 	IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2827       IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2828          l_overall_status := x_return_status;
2829       END IF;
2830 	END IF;
2831 /* End Post Generation Change */
2832         EXIT WHEN (i = p_agnv_tbl.LAST);
2833         i := p_agnv_tbl.NEXT(i);
2834       END LOOP;
2835     END IF;
2836     x_return_status := l_overall_Status;
2837   EXCEPTION
2838     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2839       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2840       (
2841         l_api_name,
2842         G_PKG_NAME,
2843         'OKC_API.G_RET_STS_ERROR',
2844         x_msg_count,
2845         x_msg_data,
2846         '_PVT'
2847       );
2848     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2849       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2850       (
2851         l_api_name,
2852         G_PKG_NAME,
2853         'OKC_API.G_RET_STS_UNEXP_ERROR',
2854         x_msg_count,
2855         x_msg_data,
2856         '_PVT'
2857       );
2858     WHEN OTHERS THEN
2859       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2860       (
2861         l_api_name,
2862         G_PKG_NAME,
2863         'OTHERS',
2864         x_msg_count,
2865         x_msg_data,
2866         '_PVT'
2867       );
2868   END delete_row;
2869 END Okl_Agn_Pvt;