[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;