DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBY_BEPKEYS_PKG

Source


1 package body iby_bepkeys_pkg as
2 /*$Header: ibybepkb.pls 120.2 2005/10/30 05:49:46 appldev ship $*/
3 
4 /*
5 ** Function: bepKeyExists.
6 ** Purpose: Check if the specified payeeid, bepid exists or not.
7 ** Unique constraints on 'bepid', 'key'
8 **
9 ** Previously, we require Unique constraints on 'bepid', 'key' and
10 **	'payeeid'
11 ** This is giving problem w/ closebatch as each BEP will associate 'key'
12 ** with one payee only
13 **
14 ** It will fail at the following case:
15 **	bepid	key	payeeid
16 **	1	oracle	payee1
17 **	1	oracle	payee2
18 **
19 **	Given key 'oracle' it won't know which payee it comes from
20 **
21 ** Now we require uniqueness on 'bepid', 'key' alone
22 **
23 ** The output parameters 'o_ownerid, o_bepname' are for error message
24 ** only.
25 */
26 
27 function bepKeyExists(i_bepid in iby_bepinfo.bepid%type,
28                      i_ownertype in iby_bepkeys.ownertype%type,
29 			i_bepkey in iby_bepkeys.key%type,
30                      o_ownerid out nocopy iby_bepkeys.ownerid%type,
31 			o_bepname out nocopy iby_bepinfo.name%type)
32 
33 return boolean
34 
35 IS
36 
37 l_flag boolean := false;
38 
39 -- to check if this key has already been used for given bep
40 -- i.e., all bep keys has to be distinct across all payees for a given bep
41 cursor c_owner (     ci_bepid iby_bepkeys.bepid%type,
42                    ci_ownertype iby_bepkeys.ownertype%type,
43 		ci_bepkey iby_bepkeys.key%type)
44 is
45 select ownerid, name
46 from iby_bepkeys a, iby_bepinfo b
47 where a.key = ci_bepkey
48 and a.ownertype = ci_ownertype
49 and a.bepid = ci_bepid
50 AND a.bepid = b.bepid;
51 
52 BEGIN
53     o_ownerid := NULL;
54     o_bepname := NULL;
55 
56     if ( c_owner%isopen) then
57         close c_owner;
58     end if;
59 
60     open c_owner(i_bepid, i_ownertype, i_bepkey);
61     fetch c_owner into o_ownerid, o_bepname;
62 
63     l_flag := (c_owner%found);
64 
65     close c_owner;
66 
67     return l_flag;
68 END bepKeyExists;
69 
70 /*
71 ** Precedure: deleteBEPKeys
72 ** Purpose: delete ALL bepkeys associated with a payee
73 **
74 **
75 */
76 procedure deleteBEPKeys(i_ownerid in iby_bepkeys.ownerid%type,
77 			i_ownertype in iby_bepkeys.ownertype%type)
78 is
79 begin
80 	DELETE FROM iby_bepkeys
81 	WHERE ownerid = i_ownerid
82 	AND ownertype = i_ownertype;
83 end deleteBEPKeys;
84 
85 
86 /*
87 ** Procedure: createBEPKey.
88 ** Purpose: creates a SINGLE bep key entry in iby_bepkeys table
89 ** parameters: i_ownerid, i_ownertype identifies the owner of the key.
90 **             i_bepid, id of the back end payment systems.
91 */
92 procedure createBEPKey(i_bepid in iby_bepinfo.bepid%type,
93                       i_ownertype in iby_bepkeys.ownertype%type,
94                       i_ownerid in iby_bepkeys.ownerid%type,
95                       i_key in iby_bepkeys.key%type,
96                       i_default in iby_bepkeys.defaults%type)
97 is
98 l_bepid iby_bepkeys.bepid%type;
99 l_ownerid iby_bepkeys.ownerid%type;
100 l_bepname iby_bepinfo.name%type;
101 l_bep_account_id iby_bepkeys.bep_account_id%TYPE;
102 
103 begin
104 
105    --get the bepid based on name of the bep.
106 
107     l_bepid := i_bepid;
108     if ( l_bepid = -99 ) then
109        	raise_application_error(-20000, 'IBY_20521#', FALSE);
110         --raise_application_error(-20521, 'NO BEP Info matched ', FALSE);
111     end if;
112 
113     IF ( bepKeyExists(l_bepid, i_ownertype, i_key, l_ownerid, l_bepname)) THEN
114 	---uniqueness constraints violated
115        	raise_application_error(-20000,
116 				'IBY_20526#KEY=' || i_key ||
117 				'#BEP=' || l_bepname || '#PAYEEID='
118 				|| l_ownerid, FALSE);
119     END IF;
120 
121     SELECT iby_bepkeys_s.NEXTVAL
122     INTO l_bep_account_id
123     FROM dual;
124 
125     -- create new keys
126         INSERT INTO iby_bepkeys ( bep_account_id, bepid, ownertype,
127                                 ownerid, key, defaults,
128 				last_update_date, last_updated_by,
129 				creation_date, created_by,
130 				last_update_login, object_version_number)
131         VALUES ( l_bep_account_id, l_bepid, i_ownertype,
132                  i_ownerid, i_key, i_default,
133 		 sysdate, fnd_global.user_id,
134 		 sysdate, fnd_global.user_id,
135 		fnd_global.login_id, 1);
136 end createBEPKey;
137 
138 end iby_bepkeys_pkg;