DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_MULTI_TENANCY_PKG

Source


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;