1 package body FUN_TRX_TYPES_PKG as
2 /* $Header: funtrxtypetbhb.pls 120.2 2003/06/10 19:53:48 yingli noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out NOCOPY VARCHAR2,
6 X_TRX_TYPE_ID in NUMBER,
7 X_ATTRIBUTE3 in VARCHAR2,
8 X_ATTRIBUTE4 in VARCHAR2,
9 X_ATTRIBUTE5 in VARCHAR2,
10 X_ATTRIBUTE6 in VARCHAR2,
11 X_ATTRIBUTE7 in VARCHAR2,
12 X_ATTRIBUTE8 in VARCHAR2,
13 X_ATTRIBUTE9 in VARCHAR2,
14 X_ATTRIBUTE10 in VARCHAR2,
15 X_ATTRIBUTE11 in VARCHAR2,
16 X_ATTRIBUTE12 in VARCHAR2,
17 X_ATTRIBUTE13 in VARCHAR2,
18 X_ATTRIBUTE14 in VARCHAR2,
19 X_ATTRIBUTE15 in VARCHAR2,
20 X_ATTRIBUTE_CATEGORY in VARCHAR2,
21 X_TRX_TYPE_CODE in NUMBER,
22 X_MANUAL_APPROVE_FLAG in VARCHAR2,
23 X_ENABLED_FLAG in VARCHAR2,
24 X_ALLOW_INVOICING_FLAG in VARCHAR2,
25 X_VAT_TAXABLE_FLAG in VARCHAR2,
26 X_ALLOW_INTEREST_ACCRUAL_FLAG in VARCHAR2,
27 X_ATTRIBUTE1 in VARCHAR2,
28 X_ATTRIBUTE2 in VARCHAR2,
29 X_TRX_TYPE_NAME in VARCHAR2,
30 X_DESCRIPTION in VARCHAR2,
31 X_CREATION_DATE in DATE,
32 X_CREATED_BY in NUMBER,
33 X_LAST_UPDATE_DATE in DATE,
34 X_LAST_UPDATED_BY in NUMBER,
35 X_LAST_UPDATE_LOGIN in NUMBER
36 ) is
37 cursor C is select ROWID from FUN_TRX_TYPES_B
38 where TRX_TYPE_ID = X_TRX_TYPE_ID
39 ;
40 begin
41 insert into FUN_TRX_TYPES_B (
42 ATTRIBUTE3,
43 ATTRIBUTE4,
44 ATTRIBUTE5,
45 ATTRIBUTE6,
46 ATTRIBUTE7,
47 ATTRIBUTE8,
48 ATTRIBUTE9,
49 ATTRIBUTE10,
50 ATTRIBUTE11,
51 ATTRIBUTE12,
52 ATTRIBUTE13,
53 ATTRIBUTE14,
54 ATTRIBUTE15,
55 ATTRIBUTE_CATEGORY,
56 TRX_TYPE_ID,
57 TRX_TYPE_CODE,
58 MANUAL_APPROVE_FLAG,
59 ENABLED_FLAG,
60 ALLOW_INVOICING_FLAG,
61 VAT_TAXABLE_FLAG,
62 ALLOW_INTEREST_ACCRUAL_FLAG,
63 ATTRIBUTE1,
64 ATTRIBUTE2,
65 CREATION_DATE,
66 CREATED_BY,
67 LAST_UPDATE_DATE,
68 LAST_UPDATED_BY,
69 LAST_UPDATE_LOGIN
70 ) values (
71 X_ATTRIBUTE3,
72 X_ATTRIBUTE4,
73 X_ATTRIBUTE5,
74 X_ATTRIBUTE6,
75 X_ATTRIBUTE7,
76 X_ATTRIBUTE8,
77 X_ATTRIBUTE9,
78 X_ATTRIBUTE10,
79 X_ATTRIBUTE11,
80 X_ATTRIBUTE12,
81 X_ATTRIBUTE13,
82 X_ATTRIBUTE14,
83 X_ATTRIBUTE15,
84 X_ATTRIBUTE_CATEGORY,
85 X_TRX_TYPE_ID,
86 X_TRX_TYPE_CODE,
87 X_MANUAL_APPROVE_FLAG,
88 X_ENABLED_FLAG,
89 X_ALLOW_INVOICING_FLAG,
90 X_VAT_TAXABLE_FLAG,
91 X_ALLOW_INTEREST_ACCRUAL_FLAG,
92 X_ATTRIBUTE1,
93 X_ATTRIBUTE2,
94 X_CREATION_DATE,
95 X_CREATED_BY,
96 X_LAST_UPDATE_DATE,
97 X_LAST_UPDATED_BY,
98 X_LAST_UPDATE_LOGIN
99 );
100
101 insert into FUN_TRX_TYPES_TL (
102 TRX_TYPE_ID,
103 TRX_TYPE_NAME,
104 DESCRIPTION,
105 CREATED_BY,
106 CREATION_DATE,
107 LAST_UPDATED_BY,
108 LAST_UPDATE_DATE,
109 LAST_UPDATE_LOGIN,
110 LANGUAGE,
111 SOURCE_LANG
112 ) select
113 X_TRX_TYPE_ID,
114 X_TRX_TYPE_NAME,
115 X_DESCRIPTION,
116 X_CREATED_BY,
117 X_CREATION_DATE,
118 X_LAST_UPDATED_BY,
119 X_LAST_UPDATE_DATE,
120 X_LAST_UPDATE_LOGIN,
121 L.LANGUAGE_CODE,
122 userenv('LANG')
123 from FND_LANGUAGES L
124 where L.INSTALLED_FLAG in ('I', 'B')
125 and not exists
126 (select NULL
127 from FUN_TRX_TYPES_TL T
128 where T.TRX_TYPE_ID = X_TRX_TYPE_ID
129 and T.LANGUAGE = L.LANGUAGE_CODE);
130
131 open c;
132 fetch c into X_ROWID;
133 if (c%notfound) then
134 close c;
135 raise no_data_found;
136 end if;
137 close c;
138
139 end INSERT_ROW;
140
141 procedure LOCK_ROW (
142 X_TRX_TYPE_ID in NUMBER,
143 X_ATTRIBUTE3 in VARCHAR2,
144 X_ATTRIBUTE4 in VARCHAR2,
145 X_ATTRIBUTE5 in VARCHAR2,
146 X_ATTRIBUTE6 in VARCHAR2,
147 X_ATTRIBUTE7 in VARCHAR2,
148 X_ATTRIBUTE8 in VARCHAR2,
149 X_ATTRIBUTE9 in VARCHAR2,
150 X_ATTRIBUTE10 in VARCHAR2,
151 X_ATTRIBUTE11 in VARCHAR2,
152 X_ATTRIBUTE12 in VARCHAR2,
153 X_ATTRIBUTE13 in VARCHAR2,
154 X_ATTRIBUTE14 in VARCHAR2,
155 X_ATTRIBUTE15 in VARCHAR2,
156 X_ATTRIBUTE_CATEGORY in VARCHAR2,
157 X_TRX_TYPE_CODE in NUMBER,
158 X_MANUAL_APPROVE_FLAG in VARCHAR2,
159 X_ENABLED_FLAG in VARCHAR2,
160 X_ALLOW_INVOICING_FLAG in VARCHAR2,
161 X_VAT_TAXABLE_FLAG in VARCHAR2,
162 X_ALLOW_INTEREST_ACCRUAL_FLAG in VARCHAR2,
163 X_ATTRIBUTE1 in VARCHAR2,
164 X_ATTRIBUTE2 in VARCHAR2,
165 X_TRX_TYPE_NAME in VARCHAR2,
166 X_DESCRIPTION in VARCHAR2
167 ) is
168 cursor c is select
169 ATTRIBUTE3,
170 ATTRIBUTE4,
171 ATTRIBUTE5,
172 ATTRIBUTE6,
173 ATTRIBUTE7,
174 ATTRIBUTE8,
175 ATTRIBUTE9,
176 ATTRIBUTE10,
177 ATTRIBUTE11,
178 ATTRIBUTE12,
179 ATTRIBUTE13,
180 ATTRIBUTE14,
181 ATTRIBUTE15,
182 ATTRIBUTE_CATEGORY,
183 TRX_TYPE_CODE,
184 MANUAL_APPROVE_FLAG,
185 ENABLED_FLAG,
186 ALLOW_INVOICING_FLAG,
187 VAT_TAXABLE_FLAG,
188 ALLOW_INTEREST_ACCRUAL_FLAG,
189 ATTRIBUTE1,
190 ATTRIBUTE2
191 from FUN_TRX_TYPES_B
192 where TRX_TYPE_ID = X_TRX_TYPE_ID
193 for update of TRX_TYPE_ID nowait;
194 recinfo c%rowtype;
195
196 cursor c1 is select
197 TRX_TYPE_NAME,
198 DESCRIPTION,
199 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
200 from FUN_TRX_TYPES_TL
201 where TRX_TYPE_ID = X_TRX_TYPE_ID
202 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
203 for update of TRX_TYPE_ID nowait;
204 begin
205 open c;
206 fetch c into recinfo;
207 if (c%notfound) then
208 close c;
209 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
210 app_exception.raise_exception;
211 end if;
212 close c;
213 if ( ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
214 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
215 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
216 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
217 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
218 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
219 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
220 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
221 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
222 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
223 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
224 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
225 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
226 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
227 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
228 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
229 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
230 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
231 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
232 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
233 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
234 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
235 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
236 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
237 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
238 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
239 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
240 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
241 AND (recinfo.TRX_TYPE_CODE = X_TRX_TYPE_CODE)
242 AND ((recinfo.MANUAL_APPROVE_FLAG = X_MANUAL_APPROVE_FLAG)
243 OR ((recinfo.MANUAL_APPROVE_FLAG is null) AND (X_MANUAL_APPROVE_FLAG is null)))
244 AND ((recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
245 OR ((recinfo.ENABLED_FLAG is null) AND (X_ENABLED_FLAG is null)))
246 AND ((recinfo.ALLOW_INVOICING_FLAG = X_ALLOW_INVOICING_FLAG)
247 OR ((recinfo.ALLOW_INVOICING_FLAG is null) AND (X_ALLOW_INVOICING_FLAG is null)))
248 AND ((recinfo.VAT_TAXABLE_FLAG = X_VAT_TAXABLE_FLAG)
249 OR ((recinfo.VAT_TAXABLE_FLAG is null) AND (X_VAT_TAXABLE_FLAG is null)))
250 AND ((recinfo.ALLOW_INTEREST_ACCRUAL_FLAG = X_ALLOW_INTEREST_ACCRUAL_FLAG)
251 OR ((recinfo.ALLOW_INTEREST_ACCRUAL_FLAG is null) AND (X_ALLOW_INTEREST_ACCRUAL_FLAG is null)))
252 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
253 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
254 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
255 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
256 ) then
257 null;
258 else
259 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
260 app_exception.raise_exception;
261 end if;
262
263 for tlinfo in c1 loop
264 if (tlinfo.BASELANG = 'Y') then
265 if ( ((tlinfo.TRX_TYPE_NAME = X_TRX_TYPE_NAME)
266 OR ((tlinfo.TRX_TYPE_NAME is null) AND (X_TRX_TYPE_NAME is null)))
267 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
268 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
269 ) then
270 null;
271 else
272 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
273 app_exception.raise_exception;
274 end if;
275 end if;
276 end loop;
277 return;
278 end LOCK_ROW;
279
280 procedure UPDATE_ROW (
281 X_TRX_TYPE_ID in NUMBER,
282 X_ATTRIBUTE3 in VARCHAR2,
283 X_ATTRIBUTE4 in VARCHAR2,
284 X_ATTRIBUTE5 in VARCHAR2,
285 X_ATTRIBUTE6 in VARCHAR2,
286 X_ATTRIBUTE7 in VARCHAR2,
287 X_ATTRIBUTE8 in VARCHAR2,
288 X_ATTRIBUTE9 in VARCHAR2,
289 X_ATTRIBUTE10 in VARCHAR2,
293 X_ATTRIBUTE14 in VARCHAR2,
290 X_ATTRIBUTE11 in VARCHAR2,
291 X_ATTRIBUTE12 in VARCHAR2,
292 X_ATTRIBUTE13 in VARCHAR2,
294 X_ATTRIBUTE15 in VARCHAR2,
295 X_ATTRIBUTE_CATEGORY in VARCHAR2,
296 X_TRX_TYPE_CODE in NUMBER,
297 X_MANUAL_APPROVE_FLAG in VARCHAR2,
298 X_ENABLED_FLAG in VARCHAR2,
299 X_ALLOW_INVOICING_FLAG in VARCHAR2,
300 X_VAT_TAXABLE_FLAG in VARCHAR2,
301 X_ALLOW_INTEREST_ACCRUAL_FLAG in VARCHAR2,
302 X_ATTRIBUTE1 in VARCHAR2,
303 X_ATTRIBUTE2 in VARCHAR2,
304 X_TRX_TYPE_NAME in VARCHAR2,
305 X_DESCRIPTION in VARCHAR2,
306 X_LAST_UPDATE_DATE in DATE,
307 X_LAST_UPDATED_BY in NUMBER,
308 X_LAST_UPDATE_LOGIN in NUMBER
309 ) is
310 begin
311 update FUN_TRX_TYPES_B set
312 ATTRIBUTE3 = X_ATTRIBUTE3,
313 ATTRIBUTE4 = X_ATTRIBUTE4,
314 ATTRIBUTE5 = X_ATTRIBUTE5,
315 ATTRIBUTE6 = X_ATTRIBUTE6,
316 ATTRIBUTE7 = X_ATTRIBUTE7,
317 ATTRIBUTE8 = X_ATTRIBUTE8,
318 ATTRIBUTE9 = X_ATTRIBUTE9,
319 ATTRIBUTE10 = X_ATTRIBUTE10,
320 ATTRIBUTE11 = X_ATTRIBUTE11,
321 ATTRIBUTE12 = X_ATTRIBUTE12,
322 ATTRIBUTE13 = X_ATTRIBUTE13,
323 ATTRIBUTE14 = X_ATTRIBUTE14,
324 ATTRIBUTE15 = X_ATTRIBUTE15,
325 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
326 TRX_TYPE_CODE = X_TRX_TYPE_CODE,
327 MANUAL_APPROVE_FLAG = X_MANUAL_APPROVE_FLAG,
328 ENABLED_FLAG = X_ENABLED_FLAG,
329 ALLOW_INVOICING_FLAG = X_ALLOW_INVOICING_FLAG,
330 VAT_TAXABLE_FLAG = X_VAT_TAXABLE_FLAG,
331 ALLOW_INTEREST_ACCRUAL_FLAG = X_ALLOW_INTEREST_ACCRUAL_FLAG,
332 ATTRIBUTE1 = X_ATTRIBUTE1,
333 ATTRIBUTE2 = X_ATTRIBUTE2,
334 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
335 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
336 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
337 where TRX_TYPE_ID = X_TRX_TYPE_ID;
338
339 if (sql%notfound) then
340 raise no_data_found;
341 end if;
342
343 update FUN_TRX_TYPES_TL set
344 TRX_TYPE_NAME = X_TRX_TYPE_NAME,
345 DESCRIPTION = X_DESCRIPTION,
346 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
347 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
348 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
349 SOURCE_LANG = userenv('LANG')
350 where TRX_TYPE_ID = X_TRX_TYPE_ID
351 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
352
353 if (sql%notfound) then
354 raise no_data_found;
355 end if;
356 end UPDATE_ROW;
357
358 procedure DELETE_ROW (
359 X_TRX_TYPE_ID in NUMBER
360 ) is
361 begin
362 delete from FUN_TRX_TYPES_TL
363 where TRX_TYPE_ID = X_TRX_TYPE_ID;
364
365 if (sql%notfound) then
366 raise no_data_found;
367 end if;
368
369 delete from FUN_TRX_TYPES_B
370 where TRX_TYPE_ID = X_TRX_TYPE_ID;
371
372 if (sql%notfound) then
373 raise no_data_found;
374 end if;
375 end DELETE_ROW;
376
377 procedure ADD_LANGUAGE
378 is
379 begin
380 delete from FUN_TRX_TYPES_TL T
381 where not exists
382 (select NULL
383 from FUN_TRX_TYPES_B B
384 where B.TRX_TYPE_ID = T.TRX_TYPE_ID
385 );
386
387 update FUN_TRX_TYPES_TL T set (
388 TRX_TYPE_NAME,
389 DESCRIPTION
390 ) = (select
391 B.TRX_TYPE_NAME,
392 B.DESCRIPTION
393 from FUN_TRX_TYPES_TL B
394 where B.TRX_TYPE_ID = T.TRX_TYPE_ID
395 and B.LANGUAGE = T.SOURCE_LANG)
396 where (
397 T.TRX_TYPE_ID,
398 T.LANGUAGE
399 ) in (select
400 SUBT.TRX_TYPE_ID,
401 SUBT.LANGUAGE
402 from FUN_TRX_TYPES_TL SUBB, FUN_TRX_TYPES_TL SUBT
403 where SUBB.TRX_TYPE_ID = SUBT.TRX_TYPE_ID
404 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
405 and (SUBB.TRX_TYPE_NAME <> SUBT.TRX_TYPE_NAME
406 or (SUBB.TRX_TYPE_NAME is null and SUBT.TRX_TYPE_NAME is not null)
407 or (SUBB.TRX_TYPE_NAME is not null and SUBT.TRX_TYPE_NAME is null)
408 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
409 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
410 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
411 ));
412
413 insert into FUN_TRX_TYPES_TL (
414 TRX_TYPE_ID,
415 TRX_TYPE_NAME,
416 DESCRIPTION,
417 CREATED_BY,
418 CREATION_DATE,
419 LAST_UPDATED_BY,
420 LAST_UPDATE_DATE,
421 LAST_UPDATE_LOGIN,
422 LANGUAGE,
423 SOURCE_LANG
424 ) select
425 B.TRX_TYPE_ID,
426 B.TRX_TYPE_NAME,
427 B.DESCRIPTION,
428 B.CREATED_BY,
429 B.CREATION_DATE,
430 B.LAST_UPDATED_BY,
431 B.LAST_UPDATE_DATE,
432 B.LAST_UPDATE_LOGIN,
433 L.LANGUAGE_CODE,
434 B.SOURCE_LANG
435 from FUN_TRX_TYPES_TL B, FND_LANGUAGES L
436 where L.INSTALLED_FLAG in ('I', 'B')
437 and B.LANGUAGE = userenv('LANG')
438 and not exists
439 (select NULL
440 from FUN_TRX_TYPES_TL T
441 where T.TRX_TYPE_ID = B.TRX_TYPE_ID
442 and T.LANGUAGE = L.LANGUAGE_CODE);
443 end ADD_LANGUAGE;
444
445 end FUN_TRX_TYPES_PKG;