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