DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_TAB_ACCT_DEFS_F_PKG

Source


1 PACKAGE BODY xla_tab_acct_defs_f_pkg AS
2 /* $Header: xlathtabacd.pkb 120.2 2003/10/02 01:57:54 dcshah noship $ */
3 /*======================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                |
5 |                       Redwood Shores, CA, USA                         |
6 |                         All rights reserved.                          |
7 +=======================================================================+
8 | PACKAGE NAME                                                          |
9 |    xla_tab_acct_defs                                                  |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_tab_acct_defs                         |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    Generated from XLAUTB.                                             |
16 |                                                                       |
17 +======================================================================*/
18 
19 
20 
21 /*======================================================================+
22 |                                                                       |
23 |  Procedure insert_row                                                 |
24 |                                                                       |
25 +======================================================================*/
26 procedure INSERT_ROW (
27   X_ROWID                        in out NOCOPY VARCHAR2,
28   X_APPLICATION_ID               in NUMBER,
29   X_AMB_CONTEXT_CODE             in VARCHAR2,
30   X_ACCOUNT_DEFINITION_TYPE_CODE in VARCHAR2,
31   X_ACCOUNT_DEFINITION_CODE      in VARCHAR2,
32   X_REQUEST_ID                   in NUMBER,
33   X_CHART_OF_ACCOUNTS_ID         in NUMBER,
34   X_COMPILE_STATUS_CODE          in VARCHAR2,
35   X_LOCKING_STATUS_FLAG          in VARCHAR2,
36   X_ENABLED_FLAG                 in VARCHAR2,
37   X_NAME                         in VARCHAR2,
38   X_DESCRIPTION                  in VARCHAR2,
39   X_CREATION_DATE                in DATE,
40   X_CREATED_BY                   in NUMBER,
41   X_LAST_UPDATE_DATE             in DATE,
42   X_LAST_UPDATED_BY              in NUMBER,
43   X_LAST_UPDATE_LOGIN            in NUMBER
44 ) is
45 
46   cursor C is
47   select ROWID from XLA_TAB_ACCT_DEFS_B
48     where APPLICATION_ID = X_APPLICATION_ID
49     and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
50     and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
51     and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE
52     ;
53 
54 BEGIN
55 
56   insert into XLA_TAB_ACCT_DEFS_B (
57     AMB_CONTEXT_CODE,
58     REQUEST_ID,
59     APPLICATION_ID,
60     ACCOUNT_DEFINITION_TYPE_CODE,
61     ACCOUNT_DEFINITION_CODE,
62     CHART_OF_ACCOUNTS_ID,
63     COMPILE_STATUS_CODE,
64     LOCKING_STATUS_FLAG,
65     ENABLED_FLAG,
66     CREATION_DATE,
67     CREATED_BY,
68     LAST_UPDATE_DATE,
69     LAST_UPDATED_BY,
70     LAST_UPDATE_LOGIN
71   ) values (
72     X_AMB_CONTEXT_CODE,
73     X_REQUEST_ID,
74     X_APPLICATION_ID,
75     X_ACCOUNT_DEFINITION_TYPE_CODE,
76     X_ACCOUNT_DEFINITION_CODE,
77     X_CHART_OF_ACCOUNTS_ID,
78     X_COMPILE_STATUS_CODE,
79     X_LOCKING_STATUS_FLAG,
80     X_ENABLED_FLAG,
81     X_CREATION_DATE,
82     X_CREATED_BY,
83     X_LAST_UPDATE_DATE,
84     X_LAST_UPDATED_BY,
85     X_LAST_UPDATE_LOGIN
86   );
87 
88   insert into XLA_TAB_ACCT_DEFS_TL (
89     APPLICATION_ID,
90     ACCOUNT_DEFINITION_TYPE_CODE,
91     ACCOUNT_DEFINITION_CODE,
92     NAME,
93     DESCRIPTION,
94     CREATION_DATE,
95     CREATED_BY,
96     LAST_UPDATE_DATE,
97     LAST_UPDATED_BY,
98     LAST_UPDATE_LOGIN,
99     AMB_CONTEXT_CODE,
100     LANGUAGE,
101     SOURCE_LANG
102   ) select
103     X_APPLICATION_ID,
104     X_ACCOUNT_DEFINITION_TYPE_CODE,
105     X_ACCOUNT_DEFINITION_CODE,
106     X_NAME,
107     X_DESCRIPTION,
108     X_CREATION_DATE,
109     X_CREATED_BY,
110     X_LAST_UPDATE_DATE,
111     X_LAST_UPDATED_BY,
112     X_LAST_UPDATE_LOGIN,
113     X_AMB_CONTEXT_CODE,
114     L.LANGUAGE_CODE,
115     userenv('LANG')
116   from FND_LANGUAGES L
117   where L.INSTALLED_FLAG in ('I', 'B')
118   and not exists
119     (select NULL
120     from XLA_TAB_ACCT_DEFS_TL T
121     where T.APPLICATION_ID = X_APPLICATION_ID
122     and T.AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
123     and T.ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
124     and T.ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE
125     and T.LANGUAGE = L.LANGUAGE_CODE);
126 
127   open c;
128   fetch c into X_ROWID;
129   if (c%notfound) then
130     close c;
131     raise no_data_found;
132   end if;
133   close c;
134 
135 end INSERT_ROW;
136 
137 
138 /*======================================================================+
139 |                                                                       |
140 |  Procedure lock_row                                                   |
141 |                                                                       |
142 +======================================================================*/
143 
144 procedure LOCK_ROW (
145   X_APPLICATION_ID               in NUMBER,
146   X_AMB_CONTEXT_CODE             in VARCHAR2,
147   X_ACCOUNT_DEFINITION_TYPE_CODE in VARCHAR2,
148   X_ACCOUNT_DEFINITION_CODE      in VARCHAR2,
149   X_REQUEST_ID                   in NUMBER,
150   X_CHART_OF_ACCOUNTS_ID         in NUMBER,
151   X_COMPILE_STATUS_CODE          in VARCHAR2,
152   X_LOCKING_STATUS_FLAG          in VARCHAR2,
153   X_ENABLED_FLAG                 in VARCHAR2,
154   X_NAME                         in VARCHAR2,
155   X_DESCRIPTION                  in VARCHAR2
156 ) is
157 
158   cursor c is select
159       REQUEST_ID,
160       CHART_OF_ACCOUNTS_ID,
161       COMPILE_STATUS_CODE,
162       LOCKING_STATUS_FLAG,
163       ENABLED_FLAG
164     from XLA_TAB_ACCT_DEFS_B
165     where APPLICATION_ID = X_APPLICATION_ID
166     and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
167     and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
168     and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE
169     for update of APPLICATION_ID nowait;
170   recinfo c%rowtype;
171 
172   cursor c1 is select
173       NAME,
174       DESCRIPTION,
175       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
176     from XLA_TAB_ACCT_DEFS_TL
177     where APPLICATION_ID = X_APPLICATION_ID
178     and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
179     and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
180     and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE
181     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
182     for update of APPLICATION_ID nowait;
183 
184 BEGIN
185   open c;
186   fetch c into recinfo;
187   if (c%notfound) then
188     close c;
189     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
190     app_exception.raise_exception;
191   end if;
192   close c;
193 
194   if (    ((recinfo.REQUEST_ID = X_REQUEST_ID)
195            OR ((recinfo.REQUEST_ID is null) AND (X_REQUEST_ID is null)))
196       AND ((recinfo.CHART_OF_ACCOUNTS_ID = X_CHART_OF_ACCOUNTS_ID)
197            OR ((recinfo.CHART_OF_ACCOUNTS_ID is null) AND (X_CHART_OF_ACCOUNTS_ID is null)))
198       AND (recinfo.COMPILE_STATUS_CODE = X_COMPILE_STATUS_CODE)
199       AND (recinfo.LOCKING_STATUS_FLAG = X_LOCKING_STATUS_FLAG)
200       AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
201   ) then
202     null;
203   else
204     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
205     app_exception.raise_exception;
206   end if;
207 
208   for tlinfo in c1 loop
209     if (tlinfo.BASELANG = 'Y') then
210       if (    (tlinfo.NAME = X_NAME)
211           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
212                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
213       ) then
214         null;
215       else
216         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
217         app_exception.raise_exception;
218       end if;
219     end if;
220   end loop;
221   return;
222 
223 END LOCK_ROW;
224 
225 /*======================================================================+
226 |                                                                       |
227 |  Procedure update_row                                                 |
228 |                                                                       |
229 +======================================================================*/
230 
231 procedure UPDATE_ROW (
232   X_APPLICATION_ID               in NUMBER,
233   X_AMB_CONTEXT_CODE             in VARCHAR2,
234   X_ACCOUNT_DEFINITION_TYPE_CODE in VARCHAR2,
235   X_ACCOUNT_DEFINITION_CODE      in VARCHAR2,
236   X_REQUEST_ID                   in NUMBER,
237   X_CHART_OF_ACCOUNTS_ID         in NUMBER,
238   X_COMPILE_STATUS_CODE          in VARCHAR2,
239   X_LOCKING_STATUS_FLAG          in VARCHAR2,
240   X_ENABLED_FLAG                 in VARCHAR2,
241   X_NAME                         in VARCHAR2,
242   X_DESCRIPTION                  in VARCHAR2,
243   X_LAST_UPDATE_DATE             in DATE,
244   X_LAST_UPDATED_BY              in NUMBER,
245   X_LAST_UPDATE_LOGIN            in NUMBER
246 ) is
247 
248 BEGIN
249 
250   UPDATE XLA_TAB_ACCT_DEFS_B set
251     REQUEST_ID = X_REQUEST_ID,
252     CHART_OF_ACCOUNTS_ID = X_CHART_OF_ACCOUNTS_ID,
253     COMPILE_STATUS_CODE = X_COMPILE_STATUS_CODE,
254     LOCKING_STATUS_FLAG = X_LOCKING_STATUS_FLAG,
255     ENABLED_FLAG = X_ENABLED_FLAG,
256     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
257     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
258     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
259   where APPLICATION_ID = X_APPLICATION_ID
260   and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
261   and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
262   and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE;
263 
264   if (sql%notfound) then
265     raise no_data_found;
266   end if;
267 
268   update XLA_TAB_ACCT_DEFS_TL set
269     NAME = X_NAME,
270     DESCRIPTION = X_DESCRIPTION,
271     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
272     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
273     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
274     SOURCE_LANG = userenv('LANG')
275   where APPLICATION_ID = X_APPLICATION_ID
276   and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
277   and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
278   and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE
279   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
280 
281   if (sql%notfound) then
282     raise no_data_found;
283   end if;
284 
285 END UPDATE_ROW;
286 
287 
288 /*======================================================================+
289 |                                                                       |
290 |  Procedure delete_row                                                 |
291 |                                                                       |
292 +======================================================================*/
293 
294 procedure DELETE_ROW (
295   X_APPLICATION_ID               in NUMBER,
296   X_AMB_CONTEXT_CODE             in VARCHAR2,
297   X_ACCOUNT_DEFINITION_TYPE_CODE in VARCHAR2,
298   X_ACCOUNT_DEFINITION_CODE      in VARCHAR2
299 ) is
300 
301 BEGIN
302 
303   delete from XLA_TAB_ACCT_DEFS_TL
304   where APPLICATION_ID = X_APPLICATION_ID
305   and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
306   and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
307   and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE;
308 
309   if (sql%notfound) then
310     raise no_data_found;
311   end if;
312 
313   delete from XLA_TAB_ACCT_DEFS_B
314   where APPLICATION_ID = X_APPLICATION_ID
315   and AMB_CONTEXT_CODE = X_AMB_CONTEXT_CODE
316   and ACCOUNT_DEFINITION_TYPE_CODE = X_ACCOUNT_DEFINITION_TYPE_CODE
317   and ACCOUNT_DEFINITION_CODE = X_ACCOUNT_DEFINITION_CODE;
318 
319   if (sql%notfound) then
320     raise no_data_found;
321   end if;
322 
323 END DELETE_ROW;
324 
325 /*======================================================================+
326 |                                                                       |
327 |  Procedure add_language                                               |
328 |                                                                       |
329 +======================================================================*/
330 
331 procedure ADD_LANGUAGE
332 is
333 
334 BEGIN
335   delete from XLA_TAB_ACCT_DEFS_TL T
336   where not exists
337     (select NULL
338     from XLA_TAB_ACCT_DEFS_B B
339     where B.APPLICATION_ID = T.APPLICATION_ID
340     and B.AMB_CONTEXT_CODE = T.AMB_CONTEXT_CODE
341     and B.ACCOUNT_DEFINITION_TYPE_CODE = T.ACCOUNT_DEFINITION_TYPE_CODE
342     and B.ACCOUNT_DEFINITION_CODE = T.ACCOUNT_DEFINITION_CODE
343     );
344 
345   update XLA_TAB_ACCT_DEFS_TL T set (
346       NAME,
347       DESCRIPTION
348     ) = (select
352     where B.APPLICATION_ID = T.APPLICATION_ID
349       B.NAME,
350       B.DESCRIPTION
351     from XLA_TAB_ACCT_DEFS_TL B
353     and B.AMB_CONTEXT_CODE = T.AMB_CONTEXT_CODE
354     and B.ACCOUNT_DEFINITION_TYPE_CODE = T.ACCOUNT_DEFINITION_TYPE_CODE
355     and B.ACCOUNT_DEFINITION_CODE = T.ACCOUNT_DEFINITION_CODE
356     and B.LANGUAGE = T.SOURCE_LANG)
357   where (
358       T.APPLICATION_ID,
359       T.AMB_CONTEXT_CODE,
360       T.ACCOUNT_DEFINITION_TYPE_CODE,
361       T.ACCOUNT_DEFINITION_CODE,
362       T.LANGUAGE
363   ) in (select
364       SUBT.APPLICATION_ID,
365       SUBT.AMB_CONTEXT_CODE,
366       SUBT.ACCOUNT_DEFINITION_TYPE_CODE,
367       SUBT.ACCOUNT_DEFINITION_CODE,
368       SUBT.LANGUAGE
369     from XLA_TAB_ACCT_DEFS_TL SUBB, XLA_TAB_ACCT_DEFS_TL SUBT
370     where SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
371     and SUBB.AMB_CONTEXT_CODE = SUBT.AMB_CONTEXT_CODE
372     and SUBB.ACCOUNT_DEFINITION_TYPE_CODE = SUBT.ACCOUNT_DEFINITION_TYPE_CODE
373     and SUBB.ACCOUNT_DEFINITION_CODE = SUBT.ACCOUNT_DEFINITION_CODE
374     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
375     and (SUBB.NAME <> SUBT.NAME
376       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
377       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
378       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
379   ));
380 
381   insert into XLA_TAB_ACCT_DEFS_TL (
382     APPLICATION_ID,
383     ACCOUNT_DEFINITION_TYPE_CODE,
384     ACCOUNT_DEFINITION_CODE,
385     NAME,
386     DESCRIPTION,
387     CREATION_DATE,
388     CREATED_BY,
389     LAST_UPDATE_DATE,
390     LAST_UPDATED_BY,
391     LAST_UPDATE_LOGIN,
392     AMB_CONTEXT_CODE,
393     LANGUAGE,
394     SOURCE_LANG
395   ) select /*+ ORDERED */
396     B.APPLICATION_ID,
397     B.ACCOUNT_DEFINITION_TYPE_CODE,
398     B.ACCOUNT_DEFINITION_CODE,
399     B.NAME,
400     B.DESCRIPTION,
401     B.CREATION_DATE,
402     B.CREATED_BY,
403     B.LAST_UPDATE_DATE,
404     B.LAST_UPDATED_BY,
405     B.LAST_UPDATE_LOGIN,
406     B.AMB_CONTEXT_CODE,
407     L.LANGUAGE_CODE,
408     B.SOURCE_LANG
409   from XLA_TAB_ACCT_DEFS_TL B, FND_LANGUAGES L
410   where L.INSTALLED_FLAG in ('I', 'B')
411   and B.LANGUAGE = userenv('LANG')
412   and not exists
413     (select NULL
414     from XLA_TAB_ACCT_DEFS_TL T
415     where T.APPLICATION_ID = B.APPLICATION_ID
416     and T.AMB_CONTEXT_CODE = B.AMB_CONTEXT_CODE
417     and T.ACCOUNT_DEFINITION_TYPE_CODE = B.ACCOUNT_DEFINITION_TYPE_CODE
418     and T.ACCOUNT_DEFINITION_CODE = B.ACCOUNT_DEFINITION_CODE
419     and T.LANGUAGE = L.LANGUAGE_CODE);
420 end ADD_LANGUAGE;
421 
422 end xla_tab_acct_defs_f_PKG;