DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_AMOUNT_TYPES_PKG

Source


1 package body PA_AMOUNT_TYPES_PKG as
2 /* $Header: PARRATLB.pls 120.1 2005/08/19 16:59:43 mwasowic noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
5   X_AMOUNT_TYPE_ID in NUMBER,
6   X_PLAN_ADJ_AMOUNT_FLAG in VARCHAR2,
7   X_PLAN_ADJUSTABLE_FLAG in VARCHAR2,
8   X_AMOUNT_TYPE_CODE in VARCHAR2,
9   X_AMOUNT_TYPE_CLASS in VARCHAR2,
10   X_AMOUNT_TYPE_NAME in VARCHAR2,
11   X_CREATION_DATE in DATE,
12   X_CREATED_BY in NUMBER,
13   X_LAST_UPDATE_DATE in DATE,
14   X_LAST_UPDATED_BY in NUMBER,
15   X_LAST_UPDATE_LOGIN in NUMBER
16 ) is
17   cursor C is select ROWID from PA_AMOUNT_TYPES_B
18     where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID
19     ;
20 begin
21   insert into PA_AMOUNT_TYPES_B (
22     PLAN_ADJ_AMOUNT_FLAG,
23     PLAN_ADJUSTABLE_FLAG,
24     AMOUNT_TYPE_ID,
25     AMOUNT_TYPE_CODE,
26     AMOUNT_TYPE_CLASS,
27     CREATION_DATE,
28     CREATED_BY,
29     LAST_UPDATE_DATE,
30     LAST_UPDATED_BY,
31     LAST_UPDATE_LOGIN
32   ) values (
33     X_PLAN_ADJ_AMOUNT_FLAG,
34     X_PLAN_ADJUSTABLE_FLAG,
35     X_AMOUNT_TYPE_ID,
36     X_AMOUNT_TYPE_CODE,
37     X_AMOUNT_TYPE_CLASS,
38     X_CREATION_DATE,
39     X_CREATED_BY,
40     X_LAST_UPDATE_DATE,
41     X_LAST_UPDATED_BY,
42     X_LAST_UPDATE_LOGIN
43   );
44 
45   insert into PA_AMOUNT_TYPES_TL (
46     AMOUNT_TYPE_ID,
47     AMOUNT_TYPE_NAME,
48     LAST_UPDATE_DATE,
49     LAST_UPDATED_BY,
50     CREATION_DATE,
51     CREATED_BY,
52     LAST_UPDATE_LOGIN,
53     LANGUAGE,
54     SOURCE_LANG
55   ) select
56     X_AMOUNT_TYPE_ID,
57     X_AMOUNT_TYPE_NAME,
58     X_LAST_UPDATE_DATE,
59     X_LAST_UPDATED_BY,
60     X_CREATION_DATE,
61     X_CREATED_BY,
62     X_LAST_UPDATE_LOGIN,
63     L.LANGUAGE_CODE,
64     userenv('LANG')
65   from FND_LANGUAGES L
66   where L.INSTALLED_FLAG in ('I', 'B')
67   and not exists
68     (select NULL
69     from PA_AMOUNT_TYPES_TL T
70     where T.AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID
71     and T.LANGUAGE = L.LANGUAGE_CODE);
72 
73   open c;
74   fetch c into X_ROWID;
75   if (c%notfound) then
76     close c;
77     raise no_data_found;
78   end if;
79   close c;
80 
81 end INSERT_ROW;
82 
83 procedure LOCK_ROW (
84   X_AMOUNT_TYPE_ID in NUMBER,
85   X_PLAN_ADJ_AMOUNT_FLAG in VARCHAR2,
86   X_PLAN_ADJUSTABLE_FLAG in VARCHAR2,
87   X_AMOUNT_TYPE_CODE in VARCHAR2,
88   X_AMOUNT_TYPE_CLASS in VARCHAR2,
89   X_AMOUNT_TYPE_NAME in VARCHAR2
90 ) is
91   cursor c is select
92       PLAN_ADJ_AMOUNT_FLAG,
93       PLAN_ADJUSTABLE_FLAG,
94       AMOUNT_TYPE_CODE,
95       AMOUNT_TYPE_CLASS
96     from PA_AMOUNT_TYPES_B
97     where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID
98     for update of AMOUNT_TYPE_ID nowait;
99   recinfo c%rowtype;
100 
101   cursor c1 is select
102       AMOUNT_TYPE_NAME,
103       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
104     from PA_AMOUNT_TYPES_TL
105     where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID
106     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
107     for update of AMOUNT_TYPE_ID nowait;
108 begin
109   open c;
110   fetch c into recinfo;
111   if (c%notfound) then
112     close c;
113     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
114     app_exception.raise_exception;
115   end if;
116   close c;
117   if (    ((recinfo.PLAN_ADJ_AMOUNT_FLAG = X_PLAN_ADJ_AMOUNT_FLAG)
118            OR ((recinfo.PLAN_ADJ_AMOUNT_FLAG is null) AND (X_PLAN_ADJ_AMOUNT_FLAG is null)))
119       AND ((recinfo.PLAN_ADJUSTABLE_FLAG = X_PLAN_ADJUSTABLE_FLAG)
120            OR ((recinfo.PLAN_ADJUSTABLE_FLAG is null) AND (X_PLAN_ADJUSTABLE_FLAG is null)))
121       AND (recinfo.AMOUNT_TYPE_CODE = X_AMOUNT_TYPE_CODE)
122       AND (recinfo.AMOUNT_TYPE_CLASS = X_AMOUNT_TYPE_CLASS)
123   ) then
124     null;
125   else
126     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
127     app_exception.raise_exception;
128   end if;
129 
130   for tlinfo in c1 loop
131     if (tlinfo.BASELANG = 'Y') then
132       if (    (tlinfo.AMOUNT_TYPE_NAME = X_AMOUNT_TYPE_NAME)
133       ) then
134         null;
135       else
136         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
137         app_exception.raise_exception;
138       end if;
139     end if;
140   end loop;
141   return;
142 end LOCK_ROW;
143 
144 procedure UPDATE_ROW (
145   X_AMOUNT_TYPE_ID in NUMBER,
146   X_PLAN_ADJ_AMOUNT_FLAG in VARCHAR2,
147   X_PLAN_ADJUSTABLE_FLAG in VARCHAR2,
148   X_AMOUNT_TYPE_CODE in VARCHAR2,
149   X_AMOUNT_TYPE_CLASS in VARCHAR2,
150   X_AMOUNT_TYPE_NAME in VARCHAR2,
151   X_LAST_UPDATE_DATE in DATE,
152   X_LAST_UPDATED_BY in NUMBER,
153   X_LAST_UPDATE_LOGIN in NUMBER
154 ) is
155 begin
156   update PA_AMOUNT_TYPES_B set
157     PLAN_ADJ_AMOUNT_FLAG = X_PLAN_ADJ_AMOUNT_FLAG,
158     PLAN_ADJUSTABLE_FLAG = X_PLAN_ADJUSTABLE_FLAG,
159     AMOUNT_TYPE_CODE = X_AMOUNT_TYPE_CODE,
160     AMOUNT_TYPE_CLASS = X_AMOUNT_TYPE_CLASS,
161     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
162     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
163     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
164   where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID;
165 
166   if (sql%notfound) then
167     raise no_data_found;
168   end if;
169 
170   update PA_AMOUNT_TYPES_TL set
171     AMOUNT_TYPE_NAME = X_AMOUNT_TYPE_NAME,
172     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
173     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
174     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
175     SOURCE_LANG = userenv('LANG')
176   where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID
177   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
178 
179   if (sql%notfound) then
180     raise no_data_found;
181   end if;
182 end UPDATE_ROW;
183 
184 procedure DELETE_ROW (
185   X_AMOUNT_TYPE_ID in NUMBER
186 ) is
187 begin
188   delete from PA_AMOUNT_TYPES_TL
189   where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID;
190 
191   if (sql%notfound) then
192     raise no_data_found;
193   end if;
194 
195   delete from PA_AMOUNT_TYPES_B
196   where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID;
197 
198   if (sql%notfound) then
199     raise no_data_found;
200   end if;
201 end DELETE_ROW;
202 
203 procedure ADD_LANGUAGE
204 is
205 begin
206   delete from PA_AMOUNT_TYPES_TL T
207   where not exists
208     (select NULL
209     from PA_AMOUNT_TYPES_B B
210     where B.AMOUNT_TYPE_ID = T.AMOUNT_TYPE_ID
211     );
212 
213   update PA_AMOUNT_TYPES_TL T set (
214       AMOUNT_TYPE_NAME
215     ) = (select
216       B.AMOUNT_TYPE_NAME
217     from PA_AMOUNT_TYPES_TL B
218     where B.AMOUNT_TYPE_ID = T.AMOUNT_TYPE_ID
219     and B.LANGUAGE = T.SOURCE_LANG)
220   where (
221       T.AMOUNT_TYPE_ID,
222       T.LANGUAGE
223   ) in (select
224       SUBT.AMOUNT_TYPE_ID,
225       SUBT.LANGUAGE
226     from PA_AMOUNT_TYPES_TL SUBB, PA_AMOUNT_TYPES_TL SUBT
227     where SUBB.AMOUNT_TYPE_ID = SUBT.AMOUNT_TYPE_ID
228     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
229     and (SUBB.AMOUNT_TYPE_NAME <> SUBT.AMOUNT_TYPE_NAME
230   ));
231 
232   insert into PA_AMOUNT_TYPES_TL (
233     AMOUNT_TYPE_ID,
234     AMOUNT_TYPE_NAME,
235     LAST_UPDATE_DATE,
236     LAST_UPDATED_BY,
237     CREATION_DATE,
238     CREATED_BY,
239     LAST_UPDATE_LOGIN,
240     LANGUAGE,
241     SOURCE_LANG
242   ) select
243     B.AMOUNT_TYPE_ID,
244     B.AMOUNT_TYPE_NAME,
245     B.LAST_UPDATE_DATE,
246     B.LAST_UPDATED_BY,
247     B.CREATION_DATE,
248     B.CREATED_BY,
249     B.LAST_UPDATE_LOGIN,
250     L.LANGUAGE_CODE,
251     B.SOURCE_LANG
252   from PA_AMOUNT_TYPES_TL B, FND_LANGUAGES L
253   where L.INSTALLED_FLAG in ('I', 'B')
254   and B.LANGUAGE = userenv('LANG')
255   and not exists
256     (select NULL
257     from PA_AMOUNT_TYPES_TL T
258     where T.AMOUNT_TYPE_ID = B.AMOUNT_TYPE_ID
259     and T.LANGUAGE = L.LANGUAGE_CODE);
260 end ADD_LANGUAGE;
261 
262 procedure TRANSLATE_ROW(
263   X_AMOUNT_TYPE_NAME in VARCHAR2,
264   X_AMOUNT_TYPE_ID in NUMBER,
265   X_OWNER in VARCHAR2
266 ) is
267 begin
268 
269   update PA_AMOUNT_TYPES_TL set
270     AMOUNT_TYPE_NAME = X_AMOUNT_TYPE_NAME,
271     LAST_UPDATE_DATE  = sysdate,
272     LAST_UPDATED_BY   = decode(X_OWNER, 'SEED', 1, 0),
273     LAST_UPDATE_LOGIN = 0,
274     SOURCE_LANG       = USERENV('LANG')
275   where AMOUNT_TYPE_ID = X_AMOUNT_TYPE_ID
276     and USERENV('LANG') IN ( LANGUAGE , SOURCE_LANG );
277 
278   if (sql%notfound) then
279     raise no_data_found;
280   end if;
281 end TRANSLATE_ROW;
282 
283 procedure LOAD_ROW(
284   X_AMOUNT_TYPE_ID in NUMBER,
285   X_PLAN_ADJ_AMOUNT_FLAG in VARCHAR2,
286   X_PLAN_ADJUSTABLE_FLAG in VARCHAR2,
287   X_AMOUNT_TYPE_CODE in VARCHAR2,
288   X_AMOUNT_TYPE_CLASS in VARCHAR2,
289   X_AMOUNT_TYPE_NAME in VARCHAR2,
290   X_OWNER in VARCHAR2
291 ) is
292 
293   user_id NUMBER;
294   X_ROWID VARCHAR2(64);
295 
296 begin
297 
298   if (X_OWNER = 'SEED')then
299    user_id := 1;
300   else
301    user_id := 0;
302   end if;
303 
304   pa_amount_types_pkg.UPDATE_ROW(
305           X_AMOUNT_TYPE_ID => X_AMOUNT_TYPE_ID,
306           X_PLAN_ADJ_AMOUNT_FLAG => X_PLAN_ADJ_AMOUNT_FLAG,
307           X_PLAN_ADJUSTABLE_FLAG => X_PLAN_ADJUSTABLE_FLAG,
308           X_AMOUNT_TYPE_CODE => X_AMOUNT_TYPE_CODE,
309           X_AMOUNT_TYPE_CLASS => X_AMOUNT_TYPE_CLASS,
310           X_AMOUNT_TYPE_NAME => X_AMOUNT_TYPE_NAME,
311           X_LAST_UPDATE_DATE => sysdate,
312           X_LAST_UPDATED_BY => user_id,
313           X_LAST_UPDATE_LOGIN => 0
314           );
315 exception
316 when NO_DATA_FOUND then
317   pa_amount_types_pkg.INSERT_ROW(
318           X_ROWID => X_ROWID,
319           X_AMOUNT_TYPE_ID => X_AMOUNT_TYPE_ID,
320           X_PLAN_ADJ_AMOUNT_FLAG => X_PLAN_ADJ_AMOUNT_FLAG,
321           X_PLAN_ADJUSTABLE_FLAG => X_PLAN_ADJUSTABLE_FLAG,
322           X_AMOUNT_TYPE_CODE => X_AMOUNT_TYPE_CODE,
323           X_AMOUNT_TYPE_CLASS => X_AMOUNT_TYPE_CLASS,
324           X_AMOUNT_TYPE_NAME => X_AMOUNT_TYPE_NAME,
325           X_CREATION_DATE => sysdate,
326           X_CREATED_BY => user_id,
327           X_LAST_UPDATE_DATE => sysdate,
328           X_LAST_UPDATED_BY => user_id,
329           X_LAST_UPDATE_LOGIN => 0
330           );
331 end LOAD_ROW;
332 
333 end PA_AMOUNT_TYPES_PKG;