DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_SG_BANK_ACCT_VALIDATION

Source


1 PACKAGE BODY hr_sg_bank_acct_validation AS
2 /* $Header: pesgavbk.pkb 115.2 2002/09/27 03:26:50 jkarouza noship $ */
3 /* ==============================================================================
4  * Name        : hr_sg_bank_acct_validation  (BODY)
5  *
6  * Description : This package to validates SG bank accounts for the following
7  *               banks.
8  *                 Bank of Singapore (Bank Code: 7117)
9  *                 Hong Kong and Shanghai Banking Corporation (Bank Code: 7232)
10  *                 Overseas Chinese Banking Corporation (Bank Code: 7339)
11  *                 UCO Bank (Bank Code: 7357)
12  *                 Malayan Banking Berhad (Bank Code: 7302)
13  *
14  *
15  * Change List
16  * -----------
17  *
18  * Version Date      Author             Bug No.   Description of Change
19  * -------+---------+------------------+---------+-------------------------------
20  * 115.0   30-May-02 John Karouzakis              Created
21  * 115.1   11-Jun-02 John Karouzakis              Made GSCC compliant.
22  * 115.2   24-Sep-02 John Karouzakis    2590076   Changed to allow 7-digit Account Numbers
23  *                                                for BOS,HSBC and OCBC
24  *
25  * ============================================================================== */
26 
27   /* Returns 'FALSE' if Account Number is invalid for given Bank, otherwise will
28      return TRUE. */
29 
30   FUNCTION validate_account (
31             		     p_account_number	IN	VARCHAR2,
32 			     p_bank_name      	IN	VARCHAR2
33                   	    )
34   RETURN VARCHAR2 IS
35 
36   validation_failed	EXCEPTION;
37 
38   l_bank_code		VARCHAR2(4);
39   l_return		VARCHAR2(5) := 'FALSE';
40 
41   CURSOR get_bank_code(p_bank_name VARCHAR2) IS
42 	 Select meaning
43 	 From   hr_lookups
44 	 Where  lookup_type = 'SG_BANK_CODE'
45 	 And    lookup_code = p_bank_name
46 	 And    application_id = 800
47          And    enabled_flag = 'Y';
48 
49 
50   BEGIN
51 
52 	-- Check for valid parameters
53 
54 	IF (p_bank_name is NULL) or (p_account_number is NULL)
55 	THEN
56 	    RAISE validation_failed;
57 	END IF;
58 
59 
60 	-- Get bank code from HR_LOOKUPS
61 
62 	OPEN get_bank_code (p_bank_name);
63 	FETCH get_bank_code
64 	 INTO l_bank_code;
65 
66 	IF (get_bank_code%NOTFOUND)
67 	THEN
68 	    RAISE validation_failed;
69 	END IF;
70 
71 
72 	-- Check that Account Number is the correct length for given bank.
73 
74         -- Validate Account Numbers for BOS, HSBC and OCBC. Must be at least 4 digits.
75 	IF (l_bank_code = '7117') or
76 	   (l_bank_code = '7232') or
77 	   (l_bank_code = '7339')
78 	THEN
79 	    IF (length(p_account_number) < 4)
80 	    THEN
81 		RAISE validation_failed;
82 	    END IF;
83 	END IF;
84 
85 
86         -- Validate Account Numbers for UCO. Must be 12-digits
87 	IF (l_bank_code = '7357')
88 	THEN
89 	    IF (length(p_account_number) <> 12)
90 	    THEN
91 		RAISE validation_failed;
92 	    END IF;
93 	END IF;
94 
95 
96         -- Validate Account Numbers for MBB. Must be 11-digits
97 	IF (l_bank_code = '7302')
98 	THEN
99 	    IF (length(p_account_number) <> 11)
100 	    THEN
101 		RAISE validation_failed;
102 	    END IF;
103 	END IF;
104 
105   	CLOSE get_bank_code;
106 
107         -- Must have passed all rules or not one of the banks to check.
108 
109         l_return := 'TRUE';
110         RETURN l_return;
111 
112   EXCEPTION
113 	WHEN validation_failed THEN
114                 RETURN l_return;
115 	WHEN others THEN
116                 RETURN l_return;
117   END validate_account;
118 
119 END hr_sg_bank_acct_validation;