DBA Data[Home] [Help]

PACKAGE BODY: APPS.PN_SET_TYPES_PKG

Source


1 package body PN_SET_TYPES_PKG As
2   -- $Header: PNTSTTYB.pls 115.14 2004/04/09 21:49:07 ftanudja ship $
3 
4 procedure INSERT_ROW (
5                        X_ROWID             in out NOCOPY VARCHAR2,
6                        X_SET_ID            in out NOCOPY NUMBER,
7                        X_SET_NAME          in VARCHAR2,
8                        X_DESCRIPTION       in VARCHAR2,
9                        X_CREATION_DATE     in DATE,
10                        X_CREATED_BY        in NUMBER,
11                        X_LAST_UPDATE_DATE  in DATE,
12                        X_LAST_UPDATED_BY   in NUMBER,
13                        X_LAST_UPDATE_LOGIN in NUMBER
14                      ) IS
15 
16   cursor C is
17   select ROWID
18   from   PN_SET_TYPES
19   where  SET_ID   = X_SET_ID
20   and    LANGUAGE = userenv('LANG');
21 
22 begin
23 
24   IF X_SET_ID is null then
25 
26     select PN_SET_TYPES_s.nextval
27     into   X_SET_ID
28     from   dual;
29 
30   END IF;
31 
32   insert into PN_SET_TYPES (
33                              SET_ID,
34                              LAST_UPDATE_DATE,
35                              LAST_UPDATED_BY,
36                              CREATION_DATE,
37                              CREATED_BY,
38                              LAST_UPDATE_LOGIN,
39                              SET_NAME,
40                              DESCRIPTION,
41                              LANGUAGE,
42                              SOURCE_LANG
43                            )
44                      select
45                              X_SET_ID,
46                              X_LAST_UPDATE_DATE,
47                              X_LAST_UPDATED_BY,
48                              X_CREATION_DATE,
49                              X_CREATED_BY,
50                              X_LAST_UPDATE_LOGIN,
51                              X_SET_NAME,
52                              X_DESCRIPTION,
53                              L.LANGUAGE_CODE,
54                              userenv('LANG')
55                      from    FND_LANGUAGES L
56                      where   L.INSTALLED_FLAG in ('I', 'B')
57                      and     not exists (
58                                           select NULL
59                                           from   PN_SET_TYPES T
60                                           where  T.SET_ID   = X_SET_ID
61                                           and    T.LANGUAGE = L.LANGUAGE_CODE
62                                         );
63 
64   open c;
65   fetch c into X_ROWID;
66   if (c%notfound) then
67     close c;
68     raise no_data_found;
69   end if;
70   close c;
71 
72 end INSERT_ROW;
73 
74 procedure LOCK_ROW   (
75                        X_SET_ID            in NUMBER,
76                        X_SET_NAME          in VARCHAR2,
77                        X_DESCRIPTION       in VARCHAR2
78                      ) IS
79   cursor c1 is
80   select *
81   from   PN_SET_TYPES
82   where  SET_ID   = X_SET_ID
83   and    LANGUAGE = userenv('LANG')
84   for    update of SET_ID nowait;
85 
86   tlinfo c1%rowtype;
87 
88 begin
89 
90   open c1;
91   fetch c1 into tlinfo;
92   if (c1%notfound) then
93     close c1;
94     return;
95   end if;
96   close c1;
97 
98   if (    (tlinfo.SET_NAME = X_SET_NAME)
99       AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
100            OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
101   ) then
102     null;
103   else
104     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
105     app_exception.raise_exception;
106   end if;
107   return;
108 
109 end LOCK_ROW;
110 
111 procedure UPDATE_ROW (
112                        X_SET_ID            in NUMBER,
113                        X_SET_NAME          in VARCHAR2,
114                        X_DESCRIPTION       in VARCHAR2,
115                        X_LAST_UPDATE_DATE  in DATE,
116                        X_LAST_UPDATED_BY   in NUMBER,
117                        X_LAST_UPDATE_LOGIN in NUMBER
118                      ) IS
119 begin
120 
121   update PN_SET_TYPES
122   set
123         SET_NAME          = X_SET_NAME,
124         DESCRIPTION       = X_DESCRIPTION,
125         LAST_UPDATE_DATE  = X_LAST_UPDATE_DATE,
126         LAST_UPDATED_BY   = X_LAST_UPDATED_BY,
127         LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
128         SOURCE_LANG       = userenv('LANG')
129   where SET_ID            = X_SET_ID
130   and   userenv('LANG')  in (LANGUAGE, SOURCE_LANG);
131 
132   if (sql%notfound) then
133     raise no_data_found;
134   end if;
135 
136 end UPDATE_ROW;
137 
138 procedure DELETE_ROW (
139                        X_SET_ID in NUMBER
140                      ) is
141 begin
142 
143   delete from PN_SET_TYPES
144   where SET_ID = X_SET_ID;
145 
146   if (sql%notfound) then
147     raise no_data_found;
148   end if;
149 
150 end DELETE_ROW;
151 
152 --------------------------------------------------------------------------
153 -- PROCEDURE: add_language
154 -- HISTORY
155 -- 08-APR-04 ftanudja o Replace userenv('lang') w/ b.source_lang. #3537691.
156 --------------------------------------------------------------------------
157 
158 procedure ADD_LANGUAGE is
159 begin
160 
161   update PN_SET_TYPES T
162   set (
163         SET_NAME,
164         DESCRIPTION
165       ) = (
166             select B.SET_NAME,
167                    B.DESCRIPTION
168             from   PN_SET_TYPES B
169             where  B.SET_ID   = T.SET_ID
170             and    B.LANGUAGE = T.SOURCE_LANG
171           )
172   where (
173           T.SET_ID,
174           T.LANGUAGE
175         ) in (
176                select SUBT.SET_ID,
177                       SUBT.LANGUAGE
178                from   PN_SET_TYPES SUBB,
179                       PN_SET_TYPES SUBT
180                where  SUBB.SET_ID = SUBT.SET_ID
181                and SUBB.LANGUAGE  = SUBT.SOURCE_LANG
182                and (SUBB.SET_NAME    <> SUBT.SET_NAME          or
183                     SUBB.DESCRIPTION <> SUBT.DESCRIPTION       or
184                     (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null) or
185                     (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
186                    )
187              );
188 
189   insert into PN_SET_TYPES (
190                              SET_ID,
191                              LAST_UPDATE_DATE,
192                              LAST_UPDATED_BY,
193                              CREATION_DATE,
194                              CREATED_BY,
195                              LAST_UPDATE_LOGIN,
196                              SET_NAME,
197                              DESCRIPTION,
198                              LANGUAGE,
199                              SOURCE_LANG
200                            )
201                     select
202                              B.SET_ID,
203                              B.LAST_UPDATE_DATE,
204                              B.LAST_UPDATED_BY,
205                              B.CREATION_DATE,
206                              B.CREATED_BY,
207                              B.LAST_UPDATE_LOGIN,
208                              B.SET_NAME,
209                              B.DESCRIPTION,
210                              L.LANGUAGE_CODE,
211                              B.SOURCE_LANG
212                     from     PN_SET_TYPES   B,
213                              FND_LANGUAGES  L
214                     where    L.INSTALLED_FLAG in ('I', 'B')
215                     and      B.LANGUAGE        = userenv('LANG')
216                     and      not exists        (
217                                                  select NULL
218                                                  from   PN_SET_TYPES T
219                                                  where  T.SET_ID   = B.SET_ID
220                                                  and    T.LANGUAGE = L.LANGUAGE_CODE
221                                                );
222 end ADD_LANGUAGE;
223 
224 end PN_SET_TYPES_PKG;