DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_AU_BANK_ACCT_VALIDATION

Source


1 PACKAGE BODY HR_AU_BANK_ACCT_VALIDATION AS
2 /* $Header: peauavbk.pkb 120.0.12000000.1 2007/08/17 10:48:26 vamittal noship $ */
3 /*
4  ******************************************************************
5  *                                                                *
6  *  Copyright (C) 1999 Oracle Corporation Australia Ltd.,         *
7  *                   Brisbane, Australia.                         *
8  *                                                                *
9  *  All rights reserved.                                          *
10  *                                                                *
11  *  This material has been provided pursuant to an agreement      *
12  *  containing restrictions on its use.  The material is also     *
13  *  protected by copyright law.  No part of this material may     *
14  *  be copied or distributed, transmitted or transcribed, in      *
15  *  any form or by any means, electronic, mechanical, magnetic,   *
16  *  manual, or otherwise, or disclosed to third parties without   *
17  *  the express written permission of Oracle Corporation          *
18  *  Australia Ltd,.                                               *
19  *                                                                *
20  ****************************************************************** */
21 /*
22  Name        : HR_AU_BANK_ACCT_VALIDATION  (BODY)
23 
24  Description : This package declares a function  to validate
25                AU Bank Account Number.
26 
27  Change List
28  -----------
29 
30  Version Date      Author     ER/CR No. Description of Change
31  -------+---------+----------+---------+--------------------------
32  115.0   03-Aug-07 vamittal             Created
33  115.1   09-Aug-07 vamittal   6315194   Comment for Ascii Code is added
34                                         Trace is removed.return_val is initialized with TRUE
35 
36  ================================================================= */
37 
38                             /******************************
39                              Ascii Values for characters
40                             *******************************
41 
42                             Characters         Ascii Value
43                             ------------------------------
44                              A-Z                65-90
45                              a-z                97-122
46                              0-9                48-57
47                              <space>            32
48                              hyphen              45
49 
50                             *******************************/
51 
52  g_debug                       boolean;
53 
54   FUNCTION VALIDATE_ACC_NUM(acc_num VARCHAR2)
55      RETURN VARCHAR2 AS
56      len                           INTEGER := 0;
57      i                             INTEGER;
58      asciivar                      INTEGER;
59      charvar                       VARCHAR(30);
60      return_val                    VARCHAR(30)   := 'TRUE';
61      digit_char_count              INTEGER := 0;
62      zero_count                    INTEGER := 0;
63      g_debug                       boolean;
64   BEGIN
65 
66      g_debug := hr_utility.debug_enabled;
67      IF g_debug THEN
68          hr_utility.set_location('Entering FUNCTION VALIDATE_ACC_NUM',1);
69          hr_utility.set_location('In Parameter acc_num '||acc_num,1);
70      END if;
71 
72 
73      len:= LENGTH(acc_num);
74 
75      i := 1;
76 
77      WHILE(i < len + 1)
78      LOOP
79           asciivar := ASCII(SUBSTR(acc_num, i, 1));
80           charvar := SUBSTR(acc_num, i, 1);
81 
82         IF         ((asciivar = 45)
83                 OR ((asciivar = 32) AND ((i > 1) AND (i < len)))
84                 OR ((asciivar >= 65) AND (asciivar <= 90))
85                 OR ((asciivar >= 97) AND (asciivar <= 122))
86                 OR ((asciivar >= 48) AND (asciivar <= 57)))
87         THEN
88              IF ( asciivar <> 32 AND asciivar <> 45)  /* id character is number of alphabet then increment counter */
89              THEN
90 	          digit_char_count := digit_char_count + 1;
91                   IF (asciivar = 48 ) /* to count number of zeros */
92                   THEN
93                   zero_count := zero_count + 1;
94                   END IF;
95              END IF;
96         ELSE
97              return_val := 'FALSE';
98              exit;
99         END IF;
100         i := i + 1;
101 
102      END LOOP;
103      IF ( zero_count = digit_char_count) /* if all character are zeros */
104      THEN
105      return_val := 'FALSE';
106      END IF;
107 
108      IF g_debug THEN
109          hr_utility.set_location('Leaving FUNCTION VALIDATE_ACC_NUM',1);
110 	 hr_utility.set_location('Retutning Value : ' || return_val,1);
111      END if;
112 
113      RETURN return_val;
114   END VALIDATE_ACC_NUM;
115 
116 END HR_AU_BANK_ACCT_VALIDATION;