1 package body AMW_NONSTANDARD_VARIATIONS_PKG as
2 /* $Header: amwnstvb.pls 120.1 2005/06/28 14:26:29 appldev noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out NOCOPY VARCHAR2,
6 X_VARIATION_ROW_ID in NUMBER,
7 X_STD_PROCESS_ID in NUMBER,
8 X_STD_PROCESS_REV_NUM in NUMBER,
9 X_NON_STD_PROCESS_ID in NUMBER,
10 X_NON_STD_PROCESS_REV_NUM in NUMBER,
11 X_STD_CHILD_ID in NUMBER,
12 X_NON_STD_CHILD_ID in NUMBER,
13 X_START_DATE in DATE,
14 X_END_DATE in DATE,
15 X_OBJECT_VERSION_NUMBER in NUMBER,
16 X_REASON in VARCHAR2,
17 X_CREATION_DATE in DATE,
18 X_CREATED_BY in NUMBER,
19 X_LAST_UPDATE_DATE in DATE,
20 X_LAST_UPDATED_BY in NUMBER,
21 X_LAST_UPDATE_LOGIN in NUMBER
22 ) is
23 cursor C is select ROWID from AMW_NONSTANDARD_VARIATIONS_B
24 where VARIATION_ROW_ID = X_VARIATION_ROW_ID
25 ;
26 begin
27 insert into AMW_NONSTANDARD_VARIATIONS_B (
28 VARIATION_ROW_ID,
29 STD_PROCESS_ID,
30 STD_PROCESS_REV_NUM,
31 NON_STD_PROCESS_ID,
32 NON_STD_PROCESS_REV_NUM,
33 STD_CHILD_ID,
34 NON_STD_CHILD_ID,
35 START_DATE,
36 END_DATE,
37 OBJECT_VERSION_NUMBER,
38 CREATION_DATE,
39 CREATED_BY,
40 LAST_UPDATE_DATE,
41 LAST_UPDATED_BY,
42 LAST_UPDATE_LOGIN
43 ) values (
44 X_VARIATION_ROW_ID,
45 X_STD_PROCESS_ID,
46 X_STD_PROCESS_REV_NUM,
47 X_NON_STD_PROCESS_ID,
48 X_NON_STD_PROCESS_REV_NUM,
49 X_STD_CHILD_ID,
50 X_NON_STD_CHILD_ID,
51 X_START_DATE,
52 X_END_DATE,
53 X_OBJECT_VERSION_NUMBER,
54 X_CREATION_DATE,
55 X_CREATED_BY,
56 X_LAST_UPDATE_DATE,
57 X_LAST_UPDATED_BY,
58 X_LAST_UPDATE_LOGIN
59 );
60
61 insert into AMW_NONSTANDARD_VARIATIONS_TL (
62 VARIATION_ROW_ID,
63 REASON,
64 LAST_UPDATE_DATE,
65 LAST_UPDATED_BY,
66 LAST_UPDATE_LOGIN,
67 CREATION_DATE,
68 CREATED_BY,
69 OBJECT_VERSION_NUMBER,
70 LANGUAGE,
71 SOURCE_LANG
72 ) select
73 X_VARIATION_ROW_ID,
74 X_REASON,
75 X_LAST_UPDATE_DATE,
76 X_LAST_UPDATED_BY,
77 X_LAST_UPDATE_LOGIN,
78 X_CREATION_DATE,
79 X_CREATED_BY,
80 X_OBJECT_VERSION_NUMBER,
81 L.LANGUAGE_CODE,
82 userenv('LANG')
83 from FND_LANGUAGES L
84 where L.INSTALLED_FLAG in ('I', 'B')
85 and not exists
86 (select NULL
87 from AMW_NONSTANDARD_VARIATIONS_TL T
88 where T.VARIATION_ROW_ID = X_VARIATION_ROW_ID
89 and T.LANGUAGE = L.LANGUAGE_CODE);
90
91 open c;
92 fetch c into X_ROWID;
93 if (c%notfound) then
94 close c;
95 raise no_data_found;
96 end if;
97 close c;
98
99 end INSERT_ROW;
100
101 procedure LOCK_ROW (
102 X_VARIATION_ROW_ID in NUMBER,
103 X_STD_PROCESS_ID in NUMBER,
104 X_STD_PROCESS_REV_NUM in NUMBER,
105 X_NON_STD_PROCESS_ID in NUMBER,
106 X_NON_STD_PROCESS_REV_NUM in NUMBER,
107 X_STD_CHILD_ID in NUMBER,
108 X_NON_STD_CHILD_ID in NUMBER,
109 X_START_DATE in DATE,
110 X_END_DATE in DATE,
111 X_OBJECT_VERSION_NUMBER in NUMBER,
112 X_REASON in VARCHAR2
113 ) is
114 cursor c is select
115 STD_PROCESS_ID,
116 STD_PROCESS_REV_NUM,
117 NON_STD_PROCESS_ID,
118 NON_STD_PROCESS_REV_NUM,
119 STD_CHILD_ID,
120 NON_STD_CHILD_ID,
121 START_DATE,
122 END_DATE,
123 OBJECT_VERSION_NUMBER
124 from AMW_NONSTANDARD_VARIATIONS_B
125 where VARIATION_ROW_ID = X_VARIATION_ROW_ID
126 for update of VARIATION_ROW_ID nowait;
127 recinfo c%rowtype;
128
129 cursor c1 is select
130 REASON,
131 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
132 from AMW_NONSTANDARD_VARIATIONS_TL
133 where VARIATION_ROW_ID = X_VARIATION_ROW_ID
134 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
135 for update of VARIATION_ROW_ID nowait;
136 begin
137 open c;
138 fetch c into recinfo;
139 if (c%notfound) then
140 close c;
141 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
142 app_exception.raise_exception;
143 end if;
144 close c;
145 if ( ((recinfo.STD_PROCESS_ID = X_STD_PROCESS_ID)
146 OR ((recinfo.STD_PROCESS_ID is null) AND (X_STD_PROCESS_ID is null)))
147 AND ((recinfo.STD_PROCESS_REV_NUM = X_STD_PROCESS_REV_NUM)
148 OR ((recinfo.STD_PROCESS_REV_NUM is null) AND (X_STD_PROCESS_REV_NUM is null)))
149 AND ((recinfo.NON_STD_PROCESS_ID = X_NON_STD_PROCESS_ID)
150 OR ((recinfo.NON_STD_PROCESS_ID is null) AND (X_NON_STD_PROCESS_ID is null)))
151 AND ((recinfo.NON_STD_PROCESS_REV_NUM = X_NON_STD_PROCESS_REV_NUM)
152 OR ((recinfo.NON_STD_PROCESS_REV_NUM is null) AND (X_NON_STD_PROCESS_REV_NUM is null)))
153 AND ((recinfo.STD_CHILD_ID = X_STD_CHILD_ID)
154 OR ((recinfo.STD_CHILD_ID is null) AND (X_STD_CHILD_ID is null)))
155 AND ((recinfo.NON_STD_CHILD_ID = X_NON_STD_CHILD_ID)
156 OR ((recinfo.NON_STD_CHILD_ID is null) AND (X_NON_STD_CHILD_ID is null)))
157 AND ((recinfo.START_DATE = X_START_DATE)
158 OR ((recinfo.START_DATE is null) AND (X_START_DATE is null)))
159 AND ((recinfo.END_DATE = X_END_DATE)
160 OR ((recinfo.END_DATE is null) AND (X_END_DATE is null)))
161 AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
162 ) then
163 null;
164 else
165 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
166 app_exception.raise_exception;
167 end if;
168
169 for tlinfo in c1 loop
170 if (tlinfo.BASELANG = 'Y') then
171 if ( ((tlinfo.REASON = X_REASON)
172 OR ((tlinfo.REASON is null) AND (X_REASON is null)))
173 ) then
174 null;
175 else
176 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
177 app_exception.raise_exception;
178 end if;
179 end if;
180 end loop;
181 return;
182 end LOCK_ROW;
183
184 procedure UPDATE_ROW (
185 X_VARIATION_ROW_ID in NUMBER,
186 X_STD_PROCESS_ID in NUMBER,
187 X_STD_PROCESS_REV_NUM in NUMBER,
188 X_NON_STD_PROCESS_ID in NUMBER,
189 X_NON_STD_PROCESS_REV_NUM in NUMBER,
190 X_STD_CHILD_ID in NUMBER,
191 X_NON_STD_CHILD_ID in NUMBER,
192 X_START_DATE in DATE,
193 X_END_DATE in DATE,
194 X_OBJECT_VERSION_NUMBER in NUMBER,
195 X_REASON in VARCHAR2,
196 X_LAST_UPDATE_DATE in DATE,
197 X_LAST_UPDATED_BY in NUMBER,
198 X_LAST_UPDATE_LOGIN in NUMBER
199 ) is
200 begin
201 update AMW_NONSTANDARD_VARIATIONS_B set
202 STD_PROCESS_ID = X_STD_PROCESS_ID,
203 STD_PROCESS_REV_NUM = X_STD_PROCESS_REV_NUM,
204 NON_STD_PROCESS_ID = X_NON_STD_PROCESS_ID,
205 NON_STD_PROCESS_REV_NUM = X_NON_STD_PROCESS_REV_NUM,
206 STD_CHILD_ID = X_STD_CHILD_ID,
207 NON_STD_CHILD_ID = X_NON_STD_CHILD_ID,
208 START_DATE = X_START_DATE,
209 END_DATE = X_END_DATE,
210 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
211 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
212 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
213 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
214 where VARIATION_ROW_ID = X_VARIATION_ROW_ID;
215
216 if (sql%notfound) then
217 raise no_data_found;
218 end if;
219
220 update AMW_NONSTANDARD_VARIATIONS_TL set
221 REASON = X_REASON,
222 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
223 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
224 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
225 SOURCE_LANG = userenv('LANG')
226 where VARIATION_ROW_ID = X_VARIATION_ROW_ID
227 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
228
229 if (sql%notfound) then
230 raise no_data_found;
231 end if;
232 end UPDATE_ROW;
233
234 procedure DELETE_ROW (
235 X_VARIATION_ROW_ID in NUMBER
236 ) is
237 begin
238 delete from AMW_NONSTANDARD_VARIATIONS_TL
239 where VARIATION_ROW_ID = X_VARIATION_ROW_ID;
240
241 if (sql%notfound) then
242 raise no_data_found;
243 end if;
244
245 delete from AMW_NONSTANDARD_VARIATIONS_B
246 where VARIATION_ROW_ID = X_VARIATION_ROW_ID;
247
248 if (sql%notfound) then
249 raise no_data_found;
250 end if;
251 end DELETE_ROW;
252
253 procedure ADD_LANGUAGE
254 is
255 begin
256 delete from AMW_NONSTANDARD_VARIATIONS_TL T
257 where not exists
258 (select NULL
259 from AMW_NONSTANDARD_VARIATIONS_B B
260 where B.VARIATION_ROW_ID = T.VARIATION_ROW_ID
261 );
262
263 update AMW_NONSTANDARD_VARIATIONS_TL T set (
264 REASON
265 ) = (select
266 B.REASON
267 from AMW_NONSTANDARD_VARIATIONS_TL B
268 where B.VARIATION_ROW_ID = T.VARIATION_ROW_ID
269 and B.LANGUAGE = T.SOURCE_LANG)
270 where (
271 T.VARIATION_ROW_ID,
272 T.LANGUAGE
273 ) in (select
274 SUBT.VARIATION_ROW_ID,
275 SUBT.LANGUAGE
276 from AMW_NONSTANDARD_VARIATIONS_TL SUBB, AMW_NONSTANDARD_VARIATIONS_TL SUBT
277 where SUBB.VARIATION_ROW_ID = SUBT.VARIATION_ROW_ID
278 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
279 and (SUBB.REASON <> SUBT.REASON
280 or (SUBB.REASON is null and SUBT.REASON is not null)
281 or (SUBB.REASON is not null and SUBT.REASON is null)
282 ));
283
284 insert into AMW_NONSTANDARD_VARIATIONS_TL (
285 VARIATION_ROW_ID,
286 REASON,
287 LAST_UPDATE_DATE,
288 LAST_UPDATED_BY,
289 LAST_UPDATE_LOGIN,
290 CREATION_DATE,
291 CREATED_BY,
292 OBJECT_VERSION_NUMBER,
293 LANGUAGE,
294 SOURCE_LANG
295 ) select /*+ ORDERED */
296 B.VARIATION_ROW_ID,
297 B.REASON,
298 B.LAST_UPDATE_DATE,
299 B.LAST_UPDATED_BY,
300 B.LAST_UPDATE_LOGIN,
301 B.CREATION_DATE,
302 B.CREATED_BY,
303 B.OBJECT_VERSION_NUMBER,
304 L.LANGUAGE_CODE,
305 B.SOURCE_LANG
306 from AMW_NONSTANDARD_VARIATIONS_TL B, FND_LANGUAGES L
307 where L.INSTALLED_FLAG in ('I', 'B')
308 and B.LANGUAGE = userenv('LANG')
309 and not exists
310 (select NULL
311 from AMW_NONSTANDARD_VARIATIONS_TL T
312 where T.VARIATION_ROW_ID = B.VARIATION_ROW_ID
313 and T.LANGUAGE = L.LANGUAGE_CODE);
314 end ADD_LANGUAGE;
315
316 end AMW_NONSTANDARD_VARIATIONS_PKG;