DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_BPA_RULE_ATTRIBUTES_PKG

Source


1 package body AR_BPA_RULE_ATTRIBUTES_PKG as
2 /* $Header: ARBPRATB.pls 120.2 2005/10/30 04:13:36 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_RULE_ATTRIBUTE_ID in NUMBER,
6   X_RULE_ID in NUMBER,
7   X_ITEM_ID in NUMBER,
8   X_MATCH_CONDITION in VARCHAR2,
9   X_ATTRIBUTE_VALUE 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 AR_BPA_RULE_ATTRIBUTES_B
17     where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID
18     ;
19 begin
20   insert into AR_BPA_RULE_ATTRIBUTES_B (
21     RULE_ATTRIBUTE_ID,
22     RULE_ID,
23     ITEM_ID,
24     MATCH_CONDITION,
25     CREATION_DATE,
26     CREATED_BY,
27     LAST_UPDATE_DATE,
28     LAST_UPDATED_BY,
29     LAST_UPDATE_LOGIN
30   ) values (
31     X_RULE_ATTRIBUTE_ID,
32     X_RULE_ID,
33     X_ITEM_ID,
34     X_MATCH_CONDITION,
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 AR_BPA_RULE_ATTRIBUTES_TL (
43     RULE_ATTRIBUTE_ID,
44     ATTRIBUTE_VALUE,
45     CREATED_BY,
46     CREATION_DATE,
47     LAST_UPDATED_BY,
48     LAST_UPDATE_DATE,
49     LAST_UPDATE_LOGIN,
50     LANGUAGE,
51     SOURCE_LANG
52   ) select
53     X_RULE_ATTRIBUTE_ID,
54     X_ATTRIBUTE_VALUE,
55     X_CREATED_BY,
56     X_CREATION_DATE,
57     X_LAST_UPDATED_BY,
58     X_LAST_UPDATE_DATE,
59     X_LAST_UPDATE_LOGIN,
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 AR_BPA_RULE_ATTRIBUTES_TL T
67     where T.RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID
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_RULE_ATTRIBUTE_ID in NUMBER,
82   X_RULE_ID in NUMBER,
83   X_ITEM_ID in NUMBER,
84   X_MATCH_CONDITION in VARCHAR2,
85   X_ATTRIBUTE_VALUE in VARCHAR2
86 ) is
87   cursor c is select
88       RULE_ID,
89       ITEM_ID,
90       MATCH_CONDITION
91     from AR_BPA_RULE_ATTRIBUTES_B
92     where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID
93     for update of RULE_ATTRIBUTE_ID nowait;
94   recinfo c%rowtype;
95 
96   cursor c1 is select
97       ATTRIBUTE_VALUE,
98       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
99     from AR_BPA_RULE_ATTRIBUTES_TL
100     where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID
101     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
102     for update of RULE_ATTRIBUTE_ID 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.RULE_ID = X_RULE_ID)
113       AND (recinfo.ITEM_ID = X_ITEM_ID)
114       AND (recinfo.MATCH_CONDITION = X_MATCH_CONDITION)
115   ) then
116     null;
117   else
118     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
119     app_exception.raise_exception;
120   end if;
121 
122   for tlinfo in c1 loop
123     if (tlinfo.BASELANG = 'Y') then
124       if (    (tlinfo.ATTRIBUTE_VALUE = X_ATTRIBUTE_VALUE)
125       ) then
126         null;
127       else
128         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
129         app_exception.raise_exception;
130       end if;
131     end if;
132   end loop;
133   return;
134 end LOCK_ROW;
135 
136 
137 procedure UPDATE_ROW (
138   X_RULE_ATTRIBUTE_ID in NUMBER,
139   X_RULE_ID in NUMBER,
140   X_ITEM_ID in NUMBER,
141   X_MATCH_CONDITION in VARCHAR2,
142   X_ATTRIBUTE_VALUE in VARCHAR2,
143   X_LAST_UPDATE_DATE in DATE,
144   X_LAST_UPDATED_BY in NUMBER,
145   X_LAST_UPDATE_LOGIN in NUMBER
146 ) is
147 begin
148   update AR_BPA_RULE_ATTRIBUTES_B set
149     RULE_ID = X_RULE_ID,
150     ITEM_ID = X_ITEM_ID,
151     MATCH_CONDITION = X_MATCH_CONDITION,
152     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
153     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
154     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
155   where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID;
156 
157   if (sql%notfound) then
158     raise no_data_found;
159   end if;
160 
161   update AR_BPA_RULE_ATTRIBUTES_TL set
162     ATTRIBUTE_VALUE = X_ATTRIBUTE_VALUE,
163     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
164     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
165     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
166     SOURCE_LANG = userenv('LANG')
167   where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID
168   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
169 
170   if (sql%notfound) then
171     raise no_data_found;
172   end if;
173 end UPDATE_ROW;
174 
175 procedure DELETE_ROW (
176   X_RULE_ATTRIBUTE_ID in NUMBER
177 ) is
178 begin
179   delete from AR_BPA_RULE_ATTRIBUTES_TL
180   where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID;
181 
182   if (sql%notfound) then
183     raise no_data_found;
184   end if;
185 
186   delete from AR_BPA_RULE_ATTRIBUTES_B
187   where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID;
188 
189   if (sql%notfound) then
190     raise no_data_found;
191   end if;
192 end DELETE_ROW;
193 
194 procedure ADD_LANGUAGE
195 is
196 begin
197   delete from AR_BPA_RULE_ATTRIBUTES_TL T
198   where not exists
199     (select NULL
200     from AR_BPA_RULE_ATTRIBUTES_B B
201     where B.RULE_ATTRIBUTE_ID = T.RULE_ATTRIBUTE_ID
202     );
203 
204   update AR_BPA_RULE_ATTRIBUTES_TL T set (
205       ATTRIBUTE_VALUE
206     ) = (select
207       B.ATTRIBUTE_VALUE
208     from AR_BPA_RULE_ATTRIBUTES_TL B
209     where B.RULE_ATTRIBUTE_ID = T.RULE_ATTRIBUTE_ID
210     and B.LANGUAGE = T.SOURCE_LANG)
211   where (
212       T.RULE_ATTRIBUTE_ID,
213       T.LANGUAGE
214   ) in (select
215       SUBT.RULE_ATTRIBUTE_ID,
216       SUBT.LANGUAGE
217     from AR_BPA_RULE_ATTRIBUTES_TL SUBB, AR_BPA_RULE_ATTRIBUTES_TL SUBT
218     where SUBB.RULE_ATTRIBUTE_ID = SUBT.RULE_ATTRIBUTE_ID
219     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
220     and (SUBB.ATTRIBUTE_VALUE <> SUBT.ATTRIBUTE_VALUE
221   ));
222 
223   insert into AR_BPA_RULE_ATTRIBUTES_TL (
224     RULE_ATTRIBUTE_ID,
225     ATTRIBUTE_VALUE,
226     CREATED_BY,
227     CREATION_DATE,
228     LAST_UPDATED_BY,
229     LAST_UPDATE_DATE,
230     LAST_UPDATE_LOGIN,
231     LANGUAGE,
232     SOURCE_LANG
233   ) select
234     B.RULE_ATTRIBUTE_ID,
235     B.ATTRIBUTE_VALUE,
236     B.CREATED_BY,
237     B.CREATION_DATE,
238     B.LAST_UPDATED_BY,
239     B.LAST_UPDATE_DATE,
240     B.LAST_UPDATE_LOGIN,
241     L.LANGUAGE_CODE,
242     B.SOURCE_LANG
243   from AR_BPA_RULE_ATTRIBUTES_TL B, FND_LANGUAGES L
244   where L.INSTALLED_FLAG in ('I', 'B')
245   and B.LANGUAGE = userenv('LANG')
246   and not exists
247     (select NULL
248     from AR_BPA_RULE_ATTRIBUTES_TL T
249     where T.RULE_ATTRIBUTE_ID = B.RULE_ATTRIBUTE_ID
250     and T.LANGUAGE = L.LANGUAGE_CODE);
251 end ADD_LANGUAGE;
252 
253 procedure TRANSLATE_ROW (
254   X_RULE_ATTRIBUTE_ID in NUMBER,
255   X_ATTRIBUTE_VALUE in VARCHAR2,
256   X_OWNER in VARCHAR2) IS
257 begin
258 
259     update AR_BPA_RULE_ATTRIBUTES_TL
260       set ATTRIBUTE_VALUE = X_ATTRIBUTE_VALUE,
261           source_lang = userenv('LANG'),
262           last_update_date = sysdate,
263           last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
264           last_update_login = 0
265     where RULE_ATTRIBUTE_ID = X_RULE_ATTRIBUTE_ID
266     and   userenv('LANG') in (language, source_lang);
267 
268 end TRANSLATE_ROW;
269 
270 procedure LOAD_ROW (
271   X_RULE_ATTRIBUTE_ID in NUMBER,
272   X_RULE_ID in NUMBER,
273   X_ITEM_ID in NUMBER,
274   X_MATCH_CONDITION in VARCHAR2,
275   X_ATTRIBUTE_VALUE in VARCHAR2,
276   X_OWNER IN VARCHAR2
277 ) IS
278   begin
279    declare
280      user_id            number := 0;
281      row_id             varchar2(64);
282    begin
283      if (X_OWNER = 'SEED') then
284         user_id := 1;
285     end if;
286 
287     AR_BPA_RULE_ATTRIBUTES_PKG.UPDATE_ROW (
288         X_RULE_ATTRIBUTE_ID 	 => X_RULE_ATTRIBUTE_ID,
289         X_RULE_ID 		 		 => X_RULE_ID,
290         X_ITEM_ID 		 		 => X_ITEM_ID,
291         X_MATCH_CONDITION 		 => X_MATCH_CONDITION,
292         X_ATTRIBUTE_VALUE 		 => X_ATTRIBUTE_VALUE,
293         X_LAST_UPDATE_DATE 		 => sysdate,
294         X_LAST_UPDATED_BY 	 	 => user_id,
295         X_LAST_UPDATE_LOGIN 	 => 0);
296     exception
297        when NO_DATA_FOUND then
298            AR_BPA_RULE_ATTRIBUTES_PKG.INSERT_ROW (
299                  X_ROWID 				 => row_id,
300 		        X_RULE_ATTRIBUTE_ID 	 => X_RULE_ATTRIBUTE_ID,
301 		        X_RULE_ID 		 		 => X_RULE_ID,
302 		        X_ITEM_ID 		 		 => X_ITEM_ID,
303 		        X_MATCH_CONDITION 		 => X_MATCH_CONDITION,
304 		        X_ATTRIBUTE_VALUE 		 => X_ATTRIBUTE_VALUE,
305 				X_CREATION_DATE 	     => sysdate,
306                 X_CREATED_BY 			 => user_id,
307                 X_LAST_UPDATE_DATE 		 => sysdate,
308                 X_LAST_UPDATED_BY 		 => user_id,
309                 X_LAST_UPDATE_LOGIN 	 => 0);
310     end;
311 end LOAD_ROW;
312 
313 end AR_BPA_RULE_ATTRIBUTES_PKG;