[Home] [Help]
PACKAGE BODY: APPS.ALR_DISTRIBUTION_LISTS_PKG
Source
1 package body ALR_DISTRIBUTION_LISTS_PKG as
2 /* $Header: ALRDLSTB.pls 120.4.12010000.1 2008/07/27 06:58:38 appldev ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_APPLICATION_ID in NUMBER,
6 X_LIST_ID in NUMBER,
7 X_END_DATE_ACTIVE in DATE,
8 X_NAME in VARCHAR2,
9 X_DESCRIPTION in VARCHAR2,
10 X_TO_RECIPIENTS in VARCHAR2,
11 X_CC_RECIPIENTS in VARCHAR2,
12 X_BCC_RECIPIENTS in VARCHAR2,
13 X_PRINT_RECIPIENTS in VARCHAR2,
14 X_PRINTER in VARCHAR2,
15 X_REPLY_TO in VARCHAR2,
16 X_ENABLED_FLAG 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 ALR_DISTRIBUTION_LISTS
24 where APPLICATION_ID = X_APPLICATION_ID
25 and LIST_ID = X_LIST_ID
26 and ((end_date_active is null)
27 or ((end_date_active is not null)
28 and (end_date_active =
29 to_date(X_END_DATE_ACTIVE,'YYYY/MM/DD HH24:MI:SS'))))
30 ;
31 begin
32 insert into ALR_DISTRIBUTION_LISTS (
33 APPLICATION_ID,
34 LIST_ID,
35 NAME,
36 LAST_UPDATE_DATE,
37 LAST_UPDATED_BY,
38 CREATION_DATE,
39 CREATED_BY,
40 LAST_UPDATE_LOGIN,
41 DESCRIPTION,
42 TO_RECIPIENTS,
43 CC_RECIPIENTS,
44 BCC_RECIPIENTS,
45 PRINT_RECIPIENTS,
46 PRINTER,
47 REPLY_TO,
48 END_DATE_ACTIVE,
49 ENABLED_FLAG
50 ) values (
51 X_APPLICATION_ID,
52 X_LIST_ID,
53 X_NAME,
54 X_LAST_UPDATE_DATE,
55 X_LAST_UPDATED_BY,
56 X_CREATION_DATE,
57 X_CREATED_BY,
58 X_LAST_UPDATE_LOGIN,
59 X_DESCRIPTION,
60 X_TO_RECIPIENTS,
61 X_CC_RECIPIENTS,
62 X_BCC_RECIPIENTS,
63 X_PRINT_RECIPIENTS,
64 X_PRINTER,
65 X_REPLY_TO,
66 X_END_DATE_ACTIVE,
67 X_ENABLED_FLAG );
68
69 open c;
70 fetch c into X_ROWID;
71 if (c%notfound) then
72 close c;
73 raise no_data_found;
74 end if;
75 close c;
76
77 end INSERT_ROW;
78
79 procedure LOAD_ROW (
80 X_APPLICATION_SHORT_NAME in VARCHAR2,
81 X_NAME in VARCHAR2,
82 X_END_DATE_ACTIVE in VARCHAR2,
83 X_OWNER in VARCHAR2,
84 X_DESCRIPTION in VARCHAR2,
85 X_TO_RECIPIENTS in VARCHAR2,
86 X_CC_RECIPIENTS in VARCHAR2,
87 X_BCC_RECIPIENTS in VARCHAR2,
88 X_PRINT_RECIPIENTS in VARCHAR2,
89 X_PRINTER in VARCHAR2,
90 X_REPLY_TO in VARCHAR2,
91 X_ENABLED_FLAG in VARCHAR2,
92 X_LAST_UPDATE_DATE in VARCHAR2,
93 X_CUSTOM_MODE in VARCHAR2
94 ) is
95 l_user_id number := 0;
96 l_app_id number := 0;
97 l_list_id number := 0;
98 l_row_id varchar2(64);
99
100 f_luby number; -- entity owner in file
101 f_ludate date; -- entity update date in file
102 db_luby number; -- entity owner in db
103 db_ludate date; -- entity update date in db
104
105 begin
106
107 -- Translate owner to file_last_updated_by
108 f_luby := fnd_load_util.owner_id(X_OWNER);
109
110 -- Translate char last_update_date to date
111 f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
112
113 select application_id into l_app_id
114 from fnd_application
115 where application_short_name = X_APPLICATION_SHORT_NAME;
116
117 /* end_date_active can be null */
118 select list_id into l_list_id from alr_distribution_lists
119 where application_id = l_app_id
120 and name = x_name
121 and ((end_date_active is null)
122 or ((end_date_active is not null)
123 and (end_date_active =
124 to_date(X_END_DATE_ACTIVE,'YYYY/MM/DD HH24:MI:SS'))));
125
126 select last_updated_by, last_update_date
127 into db_luby, db_ludate
128 from ALR_DISTRIBUTION_LISTS
129 where application_id = l_app_id
130 and ((end_date_active is null)
131 or ((end_date_active is not null)
132 and (end_date_active =
133 to_date(X_END_DATE_ACTIVE,'YYYY/MM/DD HH24:MI:SS'))))
134 and list_id = l_list_id;
135
136 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,db_ludate,
137 x_custom_mode)) then
138
139
140 ALR_DISTRIBUTION_LISTS_PKG.UPDATE_ROW(
141 X_APPLICATION_ID => l_app_id,
142 X_LIST_ID => l_list_id,
143 X_END_DATE_ACTIVE => to_date(X_END_DATE_ACTIVE,'YYYY/MM/DD HH24:MI:SS'),
144 X_NAME => X_NAME,
145 X_DESCRIPTION => X_DESCRIPTION,
146 X_TO_RECIPIENTS => X_TO_RECIPIENTS,
147 X_CC_RECIPIENTS => X_CC_RECIPIENTS,
148 X_BCC_RECIPIENTS => X_BCC_RECIPIENTS,
149 X_PRINT_RECIPIENTS => X_PRINT_RECIPIENTS,
150 X_PRINTER => X_PRINTER,
151 X_REPLY_TO => X_REPLY_TO,
152 X_ENABLED_FLAG => X_ENABLED_FLAG,
153 X_LAST_UPDATE_DATE => f_ludate,
154 X_LAST_UPDATED_BY => f_luby,
155 X_LAST_UPDATE_LOGIN => 0 );
156
157 end if;
158 exception
159 when NO_DATA_FOUND then
160
161 select alr_distribution_lists_s.nextval into l_list_id from dual;
162
163 ALR_DISTRIBUTION_LISTS_PKG.INSERT_ROW(
164 X_ROWID => l_row_id,
165 X_APPLICATION_ID => l_app_id,
166 X_LIST_ID => l_list_id,
167 X_END_DATE_ACTIVE => to_date(X_END_DATE_ACTIVE,'YYYY/MM/DD HH24:MI:SS'),
168 X_NAME => X_NAME,
169 X_DESCRIPTION => X_DESCRIPTION,
170 X_TO_RECIPIENTS => X_TO_RECIPIENTS,
171 X_CC_RECIPIENTS => X_CC_RECIPIENTS,
172 X_BCC_RECIPIENTS => X_BCC_RECIPIENTS,
173 X_PRINT_RECIPIENTS => X_PRINT_RECIPIENTS,
174 X_PRINTER => X_PRINTER,
175 X_REPLY_TO => X_REPLY_TO,
176 X_ENABLED_FLAG => X_ENABLED_FLAG,
177 X_CREATION_DATE => f_ludate,
178 X_CREATED_BY => f_luby,
179 X_LAST_UPDATE_DATE => f_ludate,
180 X_LAST_UPDATED_BY => f_luby,
181 X_LAST_UPDATE_LOGIN => 0 );
182
183 end LOAD_ROW;
184
185 procedure LOCK_ROW (
186 X_APPLICATION_ID in NUMBER,
187 X_LIST_ID in NUMBER,
188 X_END_DATE_ACTIVE in DATE,
189 X_NAME in VARCHAR2,
190 X_DESCRIPTION in VARCHAR2,
191 X_TO_RECIPIENTS in VARCHAR2,
192 X_CC_RECIPIENTS in VARCHAR2,
193 X_BCC_RECIPIENTS in VARCHAR2,
194 X_PRINT_RECIPIENTS in VARCHAR2,
195 X_PRINTER in VARCHAR2,
196 X_REPLY_TO in VARCHAR2,
197 X_ENABLED_FLAG in VARCHAR2
198 ) is
199 cursor c1 is select
200 NAME,
201 DESCRIPTION,
202 TO_RECIPIENTS,
203 CC_RECIPIENTS,
204 BCC_RECIPIENTS,
205 PRINT_RECIPIENTS,
206 PRINTER,
207 REPLY_TO,
208 ENABLED_FLAG,
209 APPLICATION_ID,
210 LIST_ID,
211 END_DATE_ACTIVE
212 from ALR_DISTRIBUTION_LISTS
213 where APPLICATION_ID = X_APPLICATION_ID
214 and LIST_ID = X_LIST_ID
215 and END_DATE_ACTIVE = X_END_DATE_ACTIVE
216 for update of APPLICATION_ID nowait;
217 begin
218 for recinfo in c1 loop
219 if ( (recinfo.APPLICATION_ID = X_APPLICATION_ID)
220 AND (recinfo.LIST_ID = X_LIST_ID)
221 AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
222 OR ((recinfo.END_DATE_ACTIVE is null)
223 AND (X_END_DATE_ACTIVE is null)))
224 AND (recinfo.NAME = X_NAME)
225 AND ((recinfo.DESCRIPTION = X_DESCRIPTION)
226 OR ((recinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
227 AND ((recinfo.TO_RECIPIENTS = X_TO_RECIPIENTS)
228 OR ((recinfo.TO_RECIPIENTS is null) AND (X_TO_RECIPIENTS is null)))
229 AND ((recinfo.CC_RECIPIENTS = X_CC_RECIPIENTS)
230 OR ((recinfo.CC_RECIPIENTS is null) AND (X_CC_RECIPIENTS is null)))
231 AND ((recinfo.BCC_RECIPIENTS = X_BCC_RECIPIENTS)
232 OR ((recinfo.BCC_RECIPIENTS is null) AND (X_BCC_RECIPIENTS is null)))
233 AND ((recinfo.PRINT_RECIPIENTS = X_PRINT_RECIPIENTS)
234 OR ((recinfo.PRINT_RECIPIENTS is null) AND (X_PRINT_RECIPIENTS is null)))
235 AND ((recinfo.PRINTER = X_PRINTER)
236 OR ((recinfo.PRINTER is null) AND (X_PRINTER is null)))
237 AND ((recinfo.REPLY_TO = X_REPLY_TO)
238 OR ((recinfo.REPLY_TO is null) AND (X_REPLY_TO is null)))
239 AND ((recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
240 OR ((recinfo.ENABLED_FLAG is null) AND (X_ENABLED_FLAG is null)))
241 ) then
242 null;
243 else
244 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
245 app_exception.raise_exception;
246 end if;
247 end loop;
248 return;
249 end LOCK_ROW;
250
251 procedure UPDATE_ROW (
252 X_APPLICATION_ID in NUMBER,
253 X_LIST_ID in NUMBER,
254 X_END_DATE_ACTIVE in DATE,
255 X_NAME in VARCHAR2,
256 X_DESCRIPTION in VARCHAR2,
257 X_TO_RECIPIENTS in VARCHAR2,
258 X_CC_RECIPIENTS in VARCHAR2,
259 X_BCC_RECIPIENTS in VARCHAR2,
260 X_PRINT_RECIPIENTS in VARCHAR2,
261 X_PRINTER in VARCHAR2,
262 X_REPLY_TO in VARCHAR2,
263 X_ENABLED_FLAG in VARCHAR2,
264 X_LAST_UPDATE_DATE in DATE,
265 X_LAST_UPDATED_BY in NUMBER,
266 X_LAST_UPDATE_LOGIN in NUMBER
267 ) is
268 begin
269 if (X_END_DATE_ACTIVE is null) then
270 update ALR_DISTRIBUTION_LISTS set
271 NAME = X_NAME,
272 DESCRIPTION = X_DESCRIPTION,
273 TO_RECIPIENTS = X_TO_RECIPIENTS,
274 CC_RECIPIENTS = X_CC_RECIPIENTS,
275 BCC_RECIPIENTS = X_BCC_RECIPIENTS,
276 PRINT_RECIPIENTS = X_PRINT_RECIPIENTS,
277 PRINTER = X_PRINTER,
278 REPLY_TO = X_REPLY_TO,
279 ENABLED_FLAG = X_ENABLED_FLAG,
280 APPLICATION_ID = X_APPLICATION_ID,
281 LIST_ID = X_LIST_ID,
282 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
283 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
284 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
285 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
286 where APPLICATION_ID = X_APPLICATION_ID
287 and LIST_ID = X_LIST_ID
288 and END_DATE_ACTIVE is null;
289 else
290 update ALR_DISTRIBUTION_LISTS set
291 NAME = X_NAME,
292 DESCRIPTION = X_DESCRIPTION,
293 TO_RECIPIENTS = X_TO_RECIPIENTS,
294 CC_RECIPIENTS = X_CC_RECIPIENTS,
295 BCC_RECIPIENTS = X_BCC_RECIPIENTS,
296 PRINT_RECIPIENTS = X_PRINT_RECIPIENTS,
297 PRINTER = X_PRINTER,
298 REPLY_TO = X_REPLY_TO,
299 ENABLED_FLAG = X_ENABLED_FLAG,
300 APPLICATION_ID = X_APPLICATION_ID,
301 LIST_ID = X_LIST_ID,
302 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
303 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
304 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
305 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
306 where APPLICATION_ID = X_APPLICATION_ID
307 and LIST_ID = X_LIST_ID
308 and END_DATE_ACTIVE = X_END_DATE_ACTIVE;
309 end if;
310
311 if (sql%notfound) then
312 raise no_data_found;
313 end if;
314 end UPDATE_ROW;
315
316 procedure DELETE_ROW (
317 X_APPLICATION_ID in NUMBER,
318 X_LIST_ID in NUMBER,
319 X_END_DATE_ACTIVE in DATE
320 ) is
321 begin
322 delete from ALR_DISTRIBUTION_LISTS
323 where APPLICATION_ID = X_APPLICATION_ID
324 and LIST_ID = X_LIST_ID
325 and END_DATE_ACTIVE = X_END_DATE_ACTIVE;
326
327 if (sql%notfound) then
328 raise no_data_found;
329 end if;
330
331 end DELETE_ROW;
332
333
334 end ALR_DISTRIBUTION_LISTS_PKG;