1 PACKAGE BODY hr_multi_tenancy_pkg AS
2 /* $Header: permtpkg.pkb 120.3 2010/09/29 06:41:34 psengupt noship $ */
3
4 FUNCTION get_label_from_bg (p_business_group_id IN NUMBER) RETURN VARCHAR2 IS
5 BEGIN
6 RETURN 'C::' || 'ENT';
7 END get_label_from_bg;
8
9 FUNCTION is_multi_tenant_system RETURN BOOLEAN AS
10 BEGIN
11 RETURN FALSE;
12 END is_multi_tenant_system;
13
14 FUNCTION get_system_model RETURN VARCHAR2 AS
15 BEGIN
16 RETURN 'N';
17 END get_system_model;
18
19 PROCEDURE process_enterprise (p_enterprise_code IN varchar2 default null, p_enterprise_id number) AS
20 BEGIN
21 NULL;
22 END process_enterprise;
23
24 PROCEDURE insert_hr_name_formats ( p_enterprise_code IN varchar2) AS
25 BEGIN
26 NULL;
27 END insert_hr_name_formats;
28
29 FUNCTION get_enterprise_for_bg(p_bg_id NUMBER) RETURN VARCHAR2 AS
30 BEGIN
31 NULL;
32 END get_enterprise_for_bg;
33
34 FUNCTION get_enterprise_for_person(p_person_id NUMBER) RETURN VARCHAR2 AS
35 BEGIN
36 NULL;
37 END get_enterprise_for_person;
38
39 PROCEDURE set_context (p_context_value IN VARCHAR2) AS
40 BEGIN
41 fnd_message.set_name ('PER','PER_OLS_SETUP_ERROR');
42 fnd_message.set_token ('ERRMSG' , 'Multi-tenancy setup error. Contact your System Administrator');
43 fnd_message.raise_error;
44 END set_context;
45
46 PROCEDURE set_context_for_person (p_person_id IN NUMBER) AS
47 BEGIN
48 NULL;
49 END set_context_for_person;
50
51 PROCEDURE set_context_for_enterprise (p_enterprise_short_code IN VARCHAR2) AS
52 BEGIN
53 NULL;
54 END set_context_for_enterprise;
55
56 FUNCTION is_valid_sec_group (p_security_group_id IN NUMBER
57 ,p_business_group_id IN NUMBER) RETURN VARCHAR2 AS
58 BEGIN
59 RETURN 'N';
60 END is_valid_sec_group;
61
62 FUNCTION get_org_id_for_person (p_person_id IN NUMBER) RETURN NUMBER AS
63 BEGIN
64 RETURN -1;
65 END get_org_id_for_person;
66
67 FUNCTION get_org_id_for_person (p_person_id IN NUMBER
68 ,p_business_group_id IN NUMBER) RETURN NUMBER AS
69 BEGIN
70 RETURN -1;
71 END get_org_id_for_person;
72
73 FUNCTION get_org_id_from_bg_and_sl (p_business_group_id IN NUMBER
74 ,p_security_label IN VARCHAR2) RETURN NUMBER AS
75 BEGIN
76 RETURN p_business_group_id;
77 END get_org_id_from_bg_and_sl;
78
79 FUNCTION get_corporate_branding (p_organization_id VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 AS
80 BEGIN
81 RETURN NULL;
82 END get_corporate_branding;
83
84 FUNCTION get_bus_grp_from_sec_grp (p_security_group_id IN NUMBER) RETURN NUMBER AS
85 BEGIN
86 RETURN NULL;
87 END get_bus_grp_from_sec_grp;
88
89 PROCEDURE set_security_group_id (p_security_group_id IN NUMBER) AS
90 BEGIN
91 NULL;
92 END set_security_group_id;
93
94 PROCEDURE add_language IS
95 CURSOR csr_ent_data_groups IS
96 SELECT pet.enterprise_id
97 ,pet.enterprise_name
98 ,pet.description
99 ,pet.source_lang
100 ,pet.created_by
101 ,pet.creation_date
102 FROM per_enterprises_tl pet
103 WHERE pet.language = userenv('LANG');
104
105 CURSOR csr_ins_langs (c_enterprise_id NUMBER) IS
106 SELECT l.language_code
107 FROM fnd_languages l
108 WHERE l.installed_flag IN ('I','B')
109 AND NOT EXISTS (SELECT NULL
110 FROM per_enterprises_tl pet
111 WHERE pet.enterprise_id = c_enterprise_id
112 AND pet.language = l.language_code);
113 --
114 BEGIN
115 --
116 DELETE FROM per_enterprises_tl t
117 WHERE NOT EXISTS
118 ( SELECT NULL
119 FROM per_enterprises b
120 WHERE b.enterprise_id = t.enterprise_id
121 );
122
123 UPDATE per_enterprises_tl t
124 SET ( enterprise_name,
125 description ) =
126 ( SELECT b.enterprise_name,
127 b.description
128 FROM per_enterprises_tl b
129 WHERE b.enterprise_id = t.enterprise_id
130 AND b.language = t.source_lang )
131 WHERE ( t.enterprise_id,
132 t.language
133 ) IN
134 ( SELECT subt.enterprise_id,
135 subt.language
136 FROM per_enterprises_tl subb, per_enterprises_tl subt
137 WHERE subb.enterprise_id = subt.enterprise_id
138 AND subb.language = subt.source_lang
139 AND ( subb.enterprise_name <> subt.enterprise_name
140 OR subb.description <> subt.description
141 OR (subb.description IS NULL AND subt.description IS NOT NULL)
142 OR (subb.description IS NOT NULL AND subt.description IS NULL)
143 )
144 );
145 --
146 --
147 FOR l_ent_data_group IN csr_ent_data_groups LOOP
148 FOR l_lang IN csr_ins_langs(l_ent_data_group.enterprise_id) LOOP
149 INSERT INTO per_enterprises_tl
150 (source_lang
151 ,enterprise_id
152 ,enterprise_name
153 ,description
154 ,language
155 ,created_by
156 ,creation_date
157 ,last_updated_by
158 ,last_update_date
159 ) VALUES
160 (l_ent_data_group.source_lang
161 ,l_ent_data_group.enterprise_id
162 ,l_ent_data_group.enterprise_name
163 ,l_ent_data_group.description
164 ,l_lang.language_code
165 ,fnd_global.user_id
166 ,sysdate
167 ,fnd_global.user_id
168 ,sysdate
169 );
170 END LOOP;
171 END LOOP;
172 --
173 END add_language;
174
175 END hr_multi_tenancy_pkg;