DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_FORMULA_CLASS_PKG

Source


1 package body GMD_FORMULA_CLASS_PKG as
2 /* $Header: GMDFMCLB.pls 115.2 2002/10/24 20:07:00 santunes noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in OUT NOCOPY VARCHAR2,
5   X_FORMULA_CLASS in VARCHAR2,
6   X_TRANS_CNT in NUMBER,
7   X_DELETE_MARK in NUMBER,
8   X_TEXT_CODE in NUMBER,
9   X_FORMULA_CLASS_DESC in VARCHAR2,
10   X_CREATION_DATE in DATE,
11   X_CREATED_BY in NUMBER,
12   X_LAST_UPDATE_DATE in DATE,
13   X_LAST_UPDATED_BY in NUMBER,
14   X_LAST_UPDATE_LOGIN in NUMBER
15 ) is
16   cursor C is select ROWID from GMD_FORMULA_CLASS_B
17     where FORMULA_CLASS = X_FORMULA_CLASS
18     ;
19 begin
20   insert into GMD_FORMULA_CLASS_B (
21     FORMULA_CLASS,
22     TRANS_CNT,
23     DELETE_MARK,
24     TEXT_CODE,
25     CREATION_DATE,
26     CREATED_BY,
27     LAST_UPDATE_DATE,
28     LAST_UPDATED_BY,
29     LAST_UPDATE_LOGIN
30   ) values (
31     X_FORMULA_CLASS,
32     X_TRANS_CNT,
33     X_DELETE_MARK,
34     X_TEXT_CODE,
35     X_CREATION_DATE,
36     X_CREATED_BY,
37     X_LAST_UPDATE_DATE,
38     X_LAST_UPDATED_BY,
39     X_LAST_UPDATE_LOGIN
40   );
41 
42   insert into GMD_FORMULA_CLASS_TL (
43     LAST_UPDATED_BY,
44     LAST_UPDATE_DATE,
45     LAST_UPDATE_LOGIN,
46     FORMULA_CLASS,
47     FORMULA_CLASS_DESC,
48     CREATED_BY,
49     CREATION_DATE,
50     LANGUAGE,
51     SOURCE_LANG
52   ) select
53     X_LAST_UPDATED_BY,
54     X_LAST_UPDATE_DATE,
55     X_LAST_UPDATE_LOGIN,
56     X_FORMULA_CLASS,
57     X_FORMULA_CLASS_DESC,
58     X_CREATED_BY,
59     X_CREATION_DATE,
60     L.LANGUAGE_CODE,
61     userenv('LANG')
62   from FND_LANGUAGES L
63   where L.INSTALLED_FLAG in ('I', 'B')
64   and not exists
65     (select NULL
66     from GMD_FORMULA_CLASS_TL T
67     where T.FORMULA_CLASS = X_FORMULA_CLASS
68     and T.LANGUAGE = L.LANGUAGE_CODE);
69 
70   open c;
71   fetch c into X_ROWID;
72   if (c%notfound) then
73     close c;
74     raise no_data_found;
75   end if;
76   close c;
77 
78 end INSERT_ROW;
79 
80 procedure LOCK_ROW (
81   X_FORMULA_CLASS in VARCHAR2,
82   X_TRANS_CNT in NUMBER,
83   X_DELETE_MARK in NUMBER,
84   X_TEXT_CODE in NUMBER,
85   X_FORMULA_CLASS_DESC in VARCHAR2
86 ) is
87   cursor c is select
88       TRANS_CNT,
89       DELETE_MARK,
90       TEXT_CODE
91     from GMD_FORMULA_CLASS_B
92     where FORMULA_CLASS = X_FORMULA_CLASS
93     for update of FORMULA_CLASS nowait;
94   recinfo c%rowtype;
95 
96   cursor c1 is select
97       FORMULA_CLASS_DESC,
98       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
99     from GMD_FORMULA_CLASS_TL
100     where FORMULA_CLASS = X_FORMULA_CLASS
101     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
102     for update of FORMULA_CLASS nowait;
103 begin
104   open c;
105   fetch c into recinfo;
106   if (c%notfound) then
107     close c;
108     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
109     app_exception.raise_exception;
110   end if;
111   close c;
112   if (    ((recinfo.TRANS_CNT = X_TRANS_CNT)
113            OR ((recinfo.TRANS_CNT is null) AND (X_TRANS_CNT is null)))
114       AND (recinfo.DELETE_MARK = X_DELETE_MARK)
115       AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
116            OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
117   ) then
118     null;
119   else
120     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
121     app_exception.raise_exception;
122   end if;
123 
124   for tlinfo in c1 loop
125     if (tlinfo.BASELANG = 'Y') then
126       if (    (tlinfo.FORMULA_CLASS_DESC = X_FORMULA_CLASS_DESC)
127       ) then
128         null;
129       else
130         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
131         app_exception.raise_exception;
132       end if;
133     end if;
134   end loop;
135   return;
136 end LOCK_ROW;
137 
138 procedure UPDATE_ROW (
139   X_FORMULA_CLASS in VARCHAR2,
140   X_TRANS_CNT in NUMBER,
141   X_DELETE_MARK in NUMBER,
142   X_TEXT_CODE in NUMBER,
143   X_FORMULA_CLASS_DESC in VARCHAR2,
144   X_LAST_UPDATE_DATE in DATE,
145   X_LAST_UPDATED_BY in NUMBER,
146   X_LAST_UPDATE_LOGIN in NUMBER
147 ) is
148 begin
149   update GMD_FORMULA_CLASS_B set
150     TRANS_CNT = X_TRANS_CNT,
151     DELETE_MARK = X_DELETE_MARK,
152     TEXT_CODE = X_TEXT_CODE,
153     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
154     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
155     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
156   where FORMULA_CLASS = X_FORMULA_CLASS;
157 
158   if (sql%notfound) then
159     raise no_data_found;
160   end if;
161 
162   update GMD_FORMULA_CLASS_TL set
163     FORMULA_CLASS_DESC = X_FORMULA_CLASS_DESC,
164     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
165     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
166     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
167     SOURCE_LANG = userenv('LANG')
168   where FORMULA_CLASS = X_FORMULA_CLASS
169   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
170 
171   if (sql%notfound) then
172     raise no_data_found;
173   end if;
174 end UPDATE_ROW;
175 
176 procedure DELETE_ROW (
177   X_FORMULA_CLASS in VARCHAR2
178 ) is
179 begin
180 
181  /* delete from GMD_FORMULA_CLASS_B
182   where FORMULA_CLASS = X_FORMULA_CLASS;
183 
184   if (sql%notfound) then
185     raise no_data_found;
186   end if;
187  */
188 
189   update GMD_FORMULA_CLASS_B
190   set delete_mark = 1
191   where FORMULA_CLASS = X_FORMULA_CLASS;
192 
193   if (sql%notfound) then
194     raise no_data_found;
195   end if;
196 end DELETE_ROW;
197 
198 procedure ADD_LANGUAGE
199 is
200 begin
201   delete from GMD_FORMULA_CLASS_TL T
202   where not exists
203     (select NULL
204     from GMD_FORMULA_CLASS_B B
205     where B.FORMULA_CLASS = T.FORMULA_CLASS
206     );
207 
208   update GMD_FORMULA_CLASS_TL T set (
209       FORMULA_CLASS_DESC
210     ) = (select
211       B.FORMULA_CLASS_DESC
212     from GMD_FORMULA_CLASS_TL B
213     where B.FORMULA_CLASS = T.FORMULA_CLASS
214     and B.LANGUAGE = T.SOURCE_LANG)
215   where (
216       T.FORMULA_CLASS,
217       T.LANGUAGE
218   ) in (select
219       SUBT.FORMULA_CLASS,
220       SUBT.LANGUAGE
221     from GMD_FORMULA_CLASS_TL SUBB, GMD_FORMULA_CLASS_TL SUBT
222     where SUBB.FORMULA_CLASS = SUBT.FORMULA_CLASS
223     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
224     and (SUBB.FORMULA_CLASS_DESC <> SUBT.FORMULA_CLASS_DESC
225   ));
226 
227   insert into GMD_FORMULA_CLASS_TL (
228     LAST_UPDATED_BY,
229     LAST_UPDATE_DATE,
230     LAST_UPDATE_LOGIN,
231     FORMULA_CLASS,
232     FORMULA_CLASS_DESC,
233     CREATED_BY,
234     CREATION_DATE,
235     LANGUAGE,
236     SOURCE_LANG
237   ) select
238     B.LAST_UPDATED_BY,
239     B.LAST_UPDATE_DATE,
240     B.LAST_UPDATE_LOGIN,
241     B.FORMULA_CLASS,
242     B.FORMULA_CLASS_DESC,
243     B.CREATED_BY,
244     B.CREATION_DATE,
245     L.LANGUAGE_CODE,
246     B.SOURCE_LANG
247   from GMD_FORMULA_CLASS_TL B, FND_LANGUAGES L
248   where L.INSTALLED_FLAG in ('I', 'B')
249   and B.LANGUAGE = userenv('LANG')
250   and not exists
251     (select NULL
252     from GMD_FORMULA_CLASS_TL T
253     where T.FORMULA_CLASS = B.FORMULA_CLASS
254     and T.LANGUAGE = L.LANGUAGE_CODE);
255 end ADD_LANGUAGE;
256 
257 end GMD_FORMULA_CLASS_PKG;