DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_SR_STATUS_GROUPS_PKG

Source


1 PACKAGE BODY CS_SR_STATUS_GROUPS_PKG AS
2 /* $Header: cststgrb.pls 120.0 2006/02/28 11:53:50 spusegao noship $ */
3 
4 PROCEDURE INSERT_ROW (
5   X_ROWID                      in out NOCOPY VARCHAR2 ,
6   X_STATUS_GROUP_ID            in NUMBER,
7   X_SECURITY_GROUP_ID          in NUMBER,
8   X_TRANSITION_IND             in VARCHAR2,
9   X_OBJECT_VERSION_NUMBER      in NUMBER,
10   X_ORIG_SYSTEM_REFERENCE_ID   in NUMBER,
11   X_END_DATE                   in DATE,
12   X_START_DATE                 in DATE,
13   X_DEFAULT_INCIDENT_STATUS_ID in NUMBER,
14   X_GROUP_NAME                 in VARCHAR2,
15   X_DESCRIPTION                in VARCHAR2,
16   X_LANGUAGE                   in VARCHAR2,
17   X_SOURCE_LANG                in VARCHAR2,
18   X_CREATION_DATE              in DATE,
19   X_CREATED_BY                 in NUMBER,
20   X_LAST_UPDATE_DATE           in DATE,
21   X_LAST_UPDATED_BY            in NUMBER,
22   X_LAST_UPDATE_LOGIN          in NUMBER)
23 
24 IS
25     cursor C is select ROWID from CS_SR_STATUS_GROUPS_B
26     where STATUS_GROUP_ID = X_STATUS_GROUP_ID;
27 
28    cursor c1 is
29    select cs_sr_status_groups_b_s.nextval
30    from   dual;
31 
32    l_status_group_id NUMBER ;
33 
34 BEGIN
35    if ( x_status_group_id IS NULL  OR  x_status_group_id = FND_API.G_MISS_NUM ) then
36       open  c1;
37       fetch c1 into l_status_group_id;
38       close c1;
39    end if;
40 
41    INSERT INTO CS_SR_STATUS_GROUPS_B (
42       STATUS_GROUP_ID,
43       SECURITY_GROUP_ID,
44       TRANSITION_IND,
45       DEFAULT_INCIDENT_STATUS_ID,
46       ORIG_SYSTEM_REFERENCE_ID,
47       END_DATE,
48       START_DATE,
49       CREATION_DATE,
50       CREATED_BY,
51       LAST_UPDATE_DATE,
52       LAST_UPDATED_BY,
53       LAST_UPDATE_LOGIN,
54       OBJECT_VERSION_NUMBER )
55    VALUES (
56       NVL(X_STATUS_GROUP_ID,l_status_group_id ),
57       X_SECURITY_GROUP_ID,
58       X_TRANSITION_IND,
59       X_DEFAULT_INCIDENT_STATUS_ID,
60       X_ORIG_SYSTEM_REFERENCE_ID,
61       X_END_DATE,
62       X_START_DATE,
63       X_CREATION_DATE,
64       X_CREATED_BY,
65       X_LAST_UPDATE_DATE,
66       X_LAST_UPDATED_BY,
67       X_LAST_UPDATE_LOGIN,
68       X_OBJECT_VERSION_NUMBER );
69 
70 
71    INSERT INTO CS_SR_STATUS_GROUPS_TL (
72       STATUS_GROUP_ID,
73       GROUP_NAME,
74       DESCRIPTION,
75       LANGUAGE,
76       SOURCE_LANG,
77       CREATION_DATE,
78       CREATED_BY,
79       LAST_UPDATE_DATE,
80       LAST_UPDATED_BY,
81       LAST_UPDATE_LOGIN )
82    SELECT
83       NVL(X_STATUS_GROUP_ID,l_status_group_id ),
84       X_GROUP_NAME,
85       X_DESCRIPTION,
86       L.LANGUAGE_CODE,
87       userenv('LANG'),
88       X_CREATION_DATE,
89       X_CREATED_BY,
90       X_LAST_UPDATE_DATE,
91       X_LAST_UPDATED_BY,
92       X_LAST_UPDATE_LOGIN
93    FROM  FND_LANGUAGES L
94    WHERE L.INSTALLED_FLAG in ('I', 'B')
95    AND   NOT EXISTS ( SELECT NULL
96                       FROM   CS_SR_STATUS_GROUPS_TL T
97                       WHERE  T.STATUS_GROUP_ID = X_STATUS_GROUP_ID
98                       AND    T.LANGUAGE        = L.LANGUAGE_CODE);
99 
100    open c;
101   fetch c into X_ROWID;
102   if (c%notfound) then
103     close c;
104     raise no_data_found;
105   end if;
106   close c;
107 
108 END INSERT_ROW;
109 
110 
111 PROCEDURE LOCK_ROW (
112   X_STATUS_GROUP_ID            in NUMBER,
113   X_SECURITY_GROUP_ID          in NUMBER,
114   X_TRANSITION_IND             in VARCHAR2,
115   X_OBJECT_VERSION_NUMBER      in NUMBER,
116   X_ORIG_SYSTEM_REFERENCE_ID   in NUMBER,
117   X_END_DATE                   in DATE,
118   X_START_DATE                 in DATE,
119   X_DEFAULT_INCIDENT_STATUS_ID in NUMBER,
120   X_GROUP_NAME                 in VARCHAR2,
121   X_DESCRIPTION                in VARCHAR2,
122   X_LANGUAGE                   in VARCHAR2,
123   X_SOURCE_LANG                in VARCHAR2
124 ) is
125   cursor c is select
126       SECURITY_GROUP_ID,
127       TRANSITION_IND,
128       OBJECT_VERSION_NUMBER,
129       ORIG_SYSTEM_REFERENCE_ID,
130       END_DATE,
131       START_DATE,
132       DEFAULT_INCIDENT_STATUS_ID
133     from CS_SR_STATUS_GROUPS_B
134     where STATUS_GROUP_ID = X_STATUS_GROUP_ID
135     for update of STATUS_GROUP_ID nowait;
136   recinfo c%rowtype;
137 
138   cursor c1 is select
139       GROUP_NAME,
140       DESCRIPTION,
141       LANGUAGE,
142       SOURCE_LANG,
143       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
144     from CS_SR_STATUS_GROUPS_TL
145     where STATUS_GROUP_ID = X_STATUS_GROUP_ID
146     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
147     for update of STATUS_GROUP_ID nowait;
148 begin
149   open c;
150   fetch c into recinfo;
151   if (c%notfound) then
152     close c;
153     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
154     app_exception.raise_exception;
155   end if;
156   close c;
157   if (    ((recinfo.SECURITY_GROUP_ID = X_SECURITY_GROUP_ID)
158            OR ((recinfo.SECURITY_GROUP_ID is null) AND (X_SECURITY_GROUP_ID is null)))
159       AND ((recinfo.TRANSITION_IND = X_TRANSITION_IND)
160            OR ((recinfo.TRANSITION_IND is null) AND (X_TRANSITION_IND is null)))
161       AND ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
162            OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
163       AND ((recinfo.ORIG_SYSTEM_REFERENCE_ID = X_ORIG_SYSTEM_REFERENCE_ID)
164            OR ((recinfo.ORIG_SYSTEM_REFERENCE_ID is null) AND (X_ORIG_SYSTEM_REFERENCE_ID is null)))
165       AND ((recinfo.END_DATE = X_END_DATE)
166            OR ((recinfo.END_DATE is null) AND (X_END_DATE is null)))
167       AND ((recinfo.START_DATE = X_START_DATE)
168            OR ((recinfo.START_DATE is null) AND (X_START_DATE is null)))
169       AND ((recinfo.DEFAULT_INCIDENT_STATUS_ID = X_DEFAULT_INCIDENT_STATUS_ID)
170            OR ((recinfo.DEFAULT_INCIDENT_STATUS_ID is null) AND (X_DEFAULT_INCIDENT_STATUS_ID is null)))
171   ) then
172     null;
173   else
174     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
175     app_exception.raise_exception;
176   end if;
177 
178   for tlinfo in c1 loop
179     if (tlinfo.BASELANG = 'Y') then
180       if (    (tlinfo.GROUP_NAME = X_GROUP_NAME)
181           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
182                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
183           AND (tlinfo.LANGUAGE = X_LANGUAGE)
184           AND (tlinfo.SOURCE_LANG = X_SOURCE_LANG)
185       ) then
186         null;
187       else
188         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
189         app_exception.raise_exception;
190       end if;
191     end if;
192   end loop;
193   return;
194 end LOCK_ROW;
195 
196 procedure UPDATE_ROW (
197   X_STATUS_GROUP_ID             in NUMBER,
198   X_SECURITY_GROUP_ID           in NUMBER,
199   X_TRANSITION_IND              in VARCHAR2,
200   X_OBJECT_VERSION_NUMBER       in NUMBER,
201   X_ORIG_SYSTEM_REFERENCE_ID    in NUMBER,
202   X_END_DATE                    in DATE,
203   X_START_DATE                  in DATE,
204   X_DEFAULT_INCIDENT_STATUS_ID  in NUMBER,
205   X_GROUP_NAME                  in VARCHAR2,
206   X_DESCRIPTION                 in VARCHAR2,
207   X_LANGUAGE                    in VARCHAR2,
208   X_SOURCE_LANG                 in VARCHAR2,
209   X_LAST_UPDATE_DATE            in DATE,
210   X_LAST_UPDATED_BY             in NUMBER,
211   X_LAST_UPDATE_LOGIN           in NUMBER) is
212 
213 begin
214 
215   UPDATE CS_SR_STATUS_GROUPS_B set
216     SECURITY_GROUP_ID          = X_SECURITY_GROUP_ID,
217     TRANSITION_IND             = X_TRANSITION_IND,
218     OBJECT_VERSION_NUMBER      = X_OBJECT_VERSION_NUMBER,
219     ORIG_SYSTEM_REFERENCE_ID   = X_ORIG_SYSTEM_REFERENCE_ID,
220     END_DATE                   = X_END_DATE,
221     START_DATE                 = X_START_DATE,
222     DEFAULT_INCIDENT_STATUS_ID = X_DEFAULT_INCIDENT_STATUS_ID,
223     LAST_UPDATE_DATE           = X_LAST_UPDATE_DATE,
224     LAST_UPDATED_BY            = X_LAST_UPDATED_BY,
225     LAST_UPDATE_LOGIN          = X_LAST_UPDATE_LOGIN
226   where STATUS_GROUP_ID        = X_STATUS_GROUP_ID;
227 
228   if (sql%notfound) then
229     raise no_data_found;
230   end if;
231 
232   UPDATE CS_SR_STATUS_GROUPS_TL set
233     GROUP_NAME        = X_GROUP_NAME,
234     DESCRIPTION       = X_DESCRIPTION,
235     LAST_UPDATE_DATE  = X_LAST_UPDATE_DATE,
236     LAST_UPDATED_BY   = X_LAST_UPDATED_BY,
237     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
238     SOURCE_LANG = userenv('LANG')
239   where STATUS_GROUP_ID = X_STATUS_GROUP_ID
240   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
241 
242   if (sql%notfound) then
243     raise no_data_found;
244   end if;
245 END UPDATE_ROW;
246 
247 
248 PROCEDURE DELETE_ROW (
249    X_STATUS_GROUP_ID              IN  NUMBER )
250 IS
251 BEGIN
252 
253   delete from CS_SR_STATUS_GROUPS_TL
254   where STATUS_GROUP_ID = X_STATUS_GROUP_ID;
255 
256   if (sql%notfound) then
257     raise no_data_found;
258   end if;
259 
260   delete from CS_SR_STATUS_GROUPS_B
261   where STATUS_GROUP_ID = X_STATUS_GROUP_ID;
262 
263   if (sql%notfound) then
264     raise no_data_found;
265   end if;
266 
267 END DELETE_ROW;
268 
269 PROCEDURE ADD_LANGUAGE
270 IS
271 BEGIN
272 
273    delete from CS_SR_STATUS_GROUPS_TL T
274    where  not exists ( select NULL
275                        from   CS_SR_STATUS_GROUPS_B B
276                        where  B.STATUS_GROUP_ID = T.STATUS_GROUP_ID );
277 
278    update CS_SR_STATUS_GROUPS_TL T
279    set ( GROUP_NAME,
280          DESCRIPTION
281          )                       = ( select  B.GROUP_NAME,
282                                              B.DESCRIPTION
283                                       from   CS_SR_STATUS_GROUPS_TL B
284                                       where  B.STATUS_GROUP_ID = T.STATUS_GROUP_ID
285                                       and    B.LANGUAGE        = T.SOURCE_LANG)
286    where ( T.STATUS_GROUP_ID, T.LANGUAGE) in ( select SUBT.STATUS_GROUP_ID, SUBT.LANGUAGE
287                                                from   CS_SR_STATUS_GROUPS_TL SUBB,
288 						      CS_SR_STATUS_GROUPS_TL SUBT
289                                                where  SUBB.STATUS_GROUP_ID = SUBT.STATUS_GROUP_ID
290                                                and    SUBB.LANGUAGE = SUBT.SOURCE_LANG
291                                                and (SUBB.GROUP_NAME <> SUBT.GROUP_NAME
292                                                 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
293                                                 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
294                                                 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
295                                                 or SUBB.LANGUAGE <> SUBT.LANGUAGE
296                                                 or SUBB.SOURCE_LANG <> SUBT.SOURCE_LANG
297                                               ));
298 
299 
300    INSERT INTO CS_SR_STATUS_GROUPS_TL (
301       STATUS_GROUP_ID,
302       GROUP_NAME,
303       DESCRIPTION,
304       LANGUAGE,
305       SOURCE_LANG,
306       CREATION_DATE,
307       CREATED_BY,
308       LAST_UPDATE_DATE,
309       LAST_UPDATED_BY,
310       LAST_UPDATE_LOGIN )
311    SELECT
312       B.STATUS_GROUP_ID,
313       B.GROUP_NAME,
314       B.DESCRIPTION,
315       L.LANGUAGE_CODE,
316       B.SOURCE_LANG,
317       B.CREATION_DATE,
318       B.CREATED_BY,
319       B.LAST_UPDATE_DATE,
320       B.LAST_UPDATED_BY,
321       B.LAST_UPDATE_LOGIN
322    FROM    CS_SR_STATUS_GROUPS_TL B,
323 	   FND_LANGUAGES L
324    WHERE   L.INSTALLED_FLAG in ('I', 'B')
325    AND     B.LANGUAGE = userenv('LANG')
326    AND     NOT EXISTS ( select NULL
327 		        from   CS_SR_STATUS_GROUPS_TL T
328                         where  T.STATUS_GROUP_ID = B.STATUS_GROUP_ID
329                         and    T.LANGUAGE        = L.LANGUAGE_CODE);
330 END ADD_LANGUAGE;
331 
332 PROCEDURE LOAD_ROW (
333    P_STATUS_GROUP_ID              IN  NUMBER,
334    P_OWNER                        IN  VARCHAR2,
335    P_TRANSITION_IND               IN  VARCHAR2,
336    P_DEFAULT_INCIDENT_STATUS_ID   IN  NUMBER,
337    P_ORIG_SYSTEM_REFERENCE_ID     IN  NUMBER,
338    P_START_DATE                   IN  VARCHAR2,
339    P_END_DATE                     IN  VARCHAR2,
343    P_SOURCE_LANG                  IN VARCHAR2,
340    P_GROUP_NAME                   IN  VARCHAR2,
341    P_DESCRIPTION                  IN  VARCHAR2,
342    P_LANGUAGE                     IN VARCHAR2,
344    P_OBJECT_VERSION_NUMBER        IN  NUMBER,
345    P_SECURITY_GROUP_ID            IN  NUMBER )
346 IS
347    l_user_id                      number := 0;
348    l_status_group_id              number;
349    lx_object_version_number       number;
350    l_rowid                        number;
351 BEGIN
352    if ( p_owner = 'SEED' ) then
353       l_user_id := 1;
354    end if;
355 
356    l_status_group_id := p_status_group_id;
357 
358    UPDATE_ROW (
359       X_STATUS_GROUP_ID              => l_status_group_id,
360       X_OBJECT_VERSION_NUMBER        => p_object_version_number,
361       X_TRANSITION_IND               => p_transition_ind,
362       X_DEFAULT_INCIDENT_STATUS_ID   => p_default_incident_status_id,
363       X_ORIG_SYSTEM_REFERENCE_ID     => p_orig_system_reference_id,
364       X_START_DATE                   => to_date(p_start_date, 'DD-MM-YYYY'),
365       X_END_DATE                     => to_date(p_end_date,   'DD-MM-YYYY'),
366       X_GROUP_NAME                   => p_group_name,
367       X_DESCRIPTION                  => p_description,
368       X_LANGUAGE                     => p_language ,
369       X_SOURCE_LANG                  => p_source_lang,
370       X_LAST_UPDATE_DATE             => SYSDATE,
371       X_LAST_UPDATED_BY              => l_user_id,
372       X_LAST_UPDATE_LOGIN            => 0,
373       X_SECURITY_GROUP_ID            => p_security_group_id );
374 
375 EXCEPTION
376    WHEN NO_DATA_FOUND THEN
377       INSERT_ROW (
378          X_ROWID                       => l_rowid,
379          X_STATUS_GROUP_ID             => l_status_group_id,
380          X_TRANSITION_IND               => p_transition_ind,
381          X_DEFAULT_INCIDENT_STATUS_ID   => p_default_incident_status_id,
382          X_ORIG_SYSTEM_REFERENCE_ID     => p_orig_system_reference_id,
383          X_START_DATE                   => to_date(p_start_date, 'DD-MM-YYYY'),
384          X_END_DATE                     => to_date(p_end_date,   'DD-MM-YYYY'),
385          X_GROUP_NAME                   => p_group_name,
386          X_DESCRIPTION                  => p_description,
387          X_LANGUAGE                     => p_language ,
388          X_SOURCE_LANG                  => p_source_lang,
389          X_CREATION_DATE                => SYSDATE,
390          X_CREATED_BY                   => l_user_id,
391          X_LAST_UPDATE_DATE             => SYSDATE,
392          X_LAST_UPDATED_BY              => l_user_id,
393 	 X_LAST_UPDATE_LOGIN            => 0,
394          X_OBJECT_VERSION_NUMBER        => p_object_version_number,
395          X_SECURITY_GROUP_ID            => p_security_group_id);
396 
397 END LOAD_ROW;
398 
399 PROCEDURE TRANSLATE_ROW (
400    P_STATUS_GROUP_ID              IN NUMBER,
401    P_GROUP_NAME                   IN VARCHAR2,
402    P_DESCRIPTION                  IN VARCHAR2,
403    P_OWNER                        IN VARCHAR2 )
404 IS
405 BEGIN
406    UPDATE  cs_sr_status_groups_tl
407    SET     group_name        = p_group_name,
408            description       = NVL(p_description,description),
409            last_update_date  = sysdate,
410            last_updated_by   = DECODE(p_owner, 'SEED', 1, 0),
411            last_update_login = 0,
412            source_lang       = userenv('LANG')
413    WHERE   status_group_id   = p_status_group_id
414    AND     userenv('LANG') IN (language, source_lang) ;
415 
416 END TRANSLATE_ROW ;
417 
418 END CS_SR_STATUS_GROUPS_PKG;