DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FR_UTILITY

Source


1 PACKAGE BODY HR_FR_UTILITY AS
2 /* $Header: hrfrutl1.pkb 120.0.12010000.4 2009/12/23 09:55:08 dchindar ship $ */
3 --
4 FUNCTION per_fr_full_name(
5         p_first_name       in varchar2
6        ,p_middle_names     in varchar2
7        ,p_last_name        in varchar2
8        ,p_known_as         in varchar2
9        ,p_title            in varchar2
10        ,p_suffix           in varchar2
11        ,p_pre_name_adjunct in varchar2
12        ,p_per_information1 in varchar2
13        ,p_per_information2 in varchar2
14        ,p_per_information3 in varchar2
15        ,p_per_information4 in varchar2
16        ,p_per_information5 in varchar2
17        ,p_per_information6 in varchar2
18        ,p_per_information7 in varchar2
19        ,p_per_information8 in varchar2
20        ,p_per_information9 in varchar2
21        ,p_per_information10 in varchar2
22        ,p_per_information11 in varchar2
23        ,p_per_information12 in varchar2
24        ,p_per_information13 in varchar2
25        ,p_per_information14 in varchar2
26        ,p_per_information15 in varchar2
27        ,p_per_information16 in varchar2
28        ,p_per_information17 in varchar2
29        ,p_per_information18 in varchar2
30        ,p_per_information19 in varchar2
31        ,p_per_information20 in varchar2
32        ,p_per_information21 in varchar2
33        ,p_per_information22 in varchar2
34        ,p_per_information23 in varchar2
35        ,p_per_information24 in varchar2
36        ,p_per_information25 in varchar2
37        ,p_per_information26 in varchar2
38        ,p_per_information27 in varchar2
39        ,p_per_information28 in varchar2
40        ,p_per_information29 in varchar2
41 	  ,p_per_information30 in VARCHAR2
42 			 )
43 			  RETURN VARCHAR2 IS
44 --
45 l_full_name per_all_people_f.full_name%type;
46 --
47 BEGIN
48    --
49    -- l_full_name := p_title || ' ' || p_last_name || ' ' || p_first_name;
50    if p_title is null then
51      l_full_name := substr(p_last_name || ', ' || p_first_name,1,240);
52    else
53      l_full_name := substr(p_last_name || ', ' || hr_general.decode_lookup('TITLE',p_title) || ' ' || p_first_name,1,240);
54    end if;
55    return (rtrim(l_full_name));
56    --
57 END;
58 --
59 --
60 FUNCTION per_fr_order_name(
61         p_first_name       in varchar2
62        ,p_middle_names     in varchar2
63        ,p_last_name        in varchar2
64        ,p_known_as         in varchar2
65        ,p_title            in varchar2
66        ,p_suffix           in varchar2
67        ,p_pre_name_adjunct in varchar2
68        ,p_per_information1 in varchar2
69        ,p_per_information2 in varchar2
70        ,p_per_information3 in varchar2
71        ,p_per_information4 in varchar2
72        ,p_per_information5 in varchar2
73        ,p_per_information6 in varchar2
74        ,p_per_information7 in varchar2
75        ,p_per_information8 in varchar2
76        ,p_per_information9 in varchar2
77        ,p_per_information10 in varchar2
78        ,p_per_information11 in varchar2
79        ,p_per_information12 in varchar2
80        ,p_per_information13 in varchar2
81        ,p_per_information14 in varchar2
82        ,p_per_information15 in varchar2
83        ,p_per_information16 in varchar2
84        ,p_per_information17 in varchar2
85        ,p_per_information18 in varchar2
86        ,p_per_information19 in varchar2
87        ,p_per_information20 in varchar2
88        ,p_per_information21 in varchar2
89        ,p_per_information22 in varchar2
90        ,p_per_information23 in varchar2
91        ,p_per_information24 in varchar2
92        ,p_per_information25 in varchar2
93        ,p_per_information26 in varchar2
94        ,p_per_information27 in varchar2
95        ,p_per_information28 in varchar2
96        ,p_per_information29 in varchar2
97 	  ,p_per_information30 in VARCHAR2
98 			  )
99 			   RETURN VARCHAR2 IS
100 --
101 l_order_name per_all_people_f.order_name%type;
102 --
103 BEGIN
104    --
105    l_order_name := substr(p_last_name || ' ' || p_first_name,1,240);
106    return (rtrim(l_order_name));
107    --
108 END;
109 --
110 --
111 
112 ----
113 -- Function for Account Number Validation
114 ----
115 
116 FUNCTION validate_account_number
117  (p_account_number IN VARCHAR2,
118   p_bank_code IN VARCHAR2,
119   p_branch_code  IN VARCHAR2) RETURN NUMBER IS
120  	l_ret NUMBER ;
121  BEGIN
122 
123  select decode(
124        decode(substr(translate(p_account_number,'0123456789','9999999999'),12,3), '-99',1,0) +
125        decode(length(p_account_number),14,1,0) +
126        decode(translate  (substr(p_account_number,1,11),
127            'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'),
128            'AAAAAAAAAAA',1,0) +
129        mod(to_number(translate(translate(translate(translate(translate
130                     (translate(translate(translate(translate(
131                      substr(rpad(p_bank_code,5,0) ||
132                      rpad(p_branch_code,5,0) ||
133                      rpad(substr(replace(p_account_number, '-'),1,11),11,0)||
134                      rpad(substr( Replace(p_account_number, '-' ) ,12,2),2,0),1,23),
135                     'AJ','11'), 'BKS','222'), 'CLT','333'), 'DMU','444'), 'ENV','555'),
136                     'FOW','666'), 'GPX','777'), 'HQY','888'), 'IRZ','999')),97),3, 1, 0)
137  INTO l_ret
138  FROM dual ;
139 
140 return  l_ret;
141 END validate_account_number;
142 
143 
144 
145 
146 ----
147 -- Function added for IBAN Validation
148 ----
149 FUNCTION validate_iban_acc(p_account_no VARCHAR2)RETURN NUMBER IS
150 BEGIN
151      IF IBAN_VALIDATION_PKG.validate_iban_acc(p_account_no) = 1 then
152      RETURN 1;
153      else
154      RETURN 0;
155      END IF;
156 END validate_iban_acc;
157 
158 ----
159 -- This function will get called from the bank keyflex field segments
160 ----
161 FUNCTION validate_account_entered (p_bank_code        VARCHAR2 default null
162                             ,p_branch_code      VARCHAR2 default null
163                             ,p_account_number   VARCHAR2 default null
164                             ,p_acc_type         varchar2
165                             ,p_iban_acc         varchar2 default null) return number IS
166 
167    l_ret NUMBER ;
168  BEGIN
169  -- hr_utility.trace_on(null,'ACCVAL');
170   l_ret :=0;
171 
172   hr_utility.set_location('p_account_number ' || p_account_number,1);
173   hr_utility.set_location('p_acc_type    ' || p_acc_type,1);
174   hr_utility.set_location('p_iban_acc       ' || p_iban_acc,1);
175   hr_utility.set_location('p_bank_code    ' || p_bank_code,1);
176   hr_utility.set_location('p_branch_code       ' || p_branch_code,1);
177 
178 --------------------------------------------------------------------------------
179 -- If account type is normal (N) call the validate_account_number
180 --------------------------------------------------------------------------------
181    if p_acc_type = 'N' then
182      if p_account_number is null then
183         l_ret := 2;
184         return l_ret;
185      end if;
186      if ( p_bank_code is not null and p_branch_code is not null and
187          p_account_number is not null) then
188 
189         l_ret := validate_account_number (
190                    p_account_number  => p_account_number
191                   ,p_bank_code       => p_bank_code
192                   ,p_branch_code     => p_branch_code
193                    );
194 --   l_ret will have 1 if validation paased.
195      end if;
196    return l_ret;
197    end if;
198 
199 --------------------------------------------------------------------------------
200 -- If account type is IBAN (Y) call the validate_iban_acc
201 --------------------------------------------------------------------------------
202    if p_acc_type = 'Y' then
203       if p_iban_acc is null then
204          l_ret :=2;
205       else
206          l_ret := validate_iban_acc
207                  ( p_account_no  => p_iban_acc
208                  );
209       end if;
210       return l_ret;
211    end if;
212 
213 --------------------------------------------------------------------------------
214 -- If account type is Combine (C) check if at least one account is not null
215 --------------------------------------------------------------------------------
216 
217    IF p_acc_type = 'C' and (p_account_number is not null
218                         or p_iban_acc is not null) then
219       hr_utility.set_location(' inside first if',1);
220       return  l_ret;
221    end if;
222    l_ret := 3;
223    return l_ret;
224 
225 END validate_account_entered;
226 
227 
228 END HR_FR_UTILITY;