1 package body FND_PRINTER_STYLES_PKG as
2 /* $Header: AFPRRPSB.pls 120.2 2005/08/19 20:18:05 ckclark ship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out nocopy VARCHAR2,
6 X_PRINTER_STYLE_NAME in VARCHAR2,
7 X_SEQUENCE in NUMBER,
8 X_WIDTH in NUMBER,
9 X_LENGTH in NUMBER,
10 X_DESCRIPTION in VARCHAR2,
11 X_ORIENTATION in VARCHAR2,
12 X_SRW_DRIVER in VARCHAR2,
13 X_HEADER_FLAG in VARCHAR2,
14 X_USER_PRINTER_STYLE_NAME in VARCHAR2,
15 X_CREATION_DATE in DATE,
16 X_CREATED_BY in NUMBER,
17 X_LAST_UPDATE_DATE in DATE,
18 X_LAST_UPDATED_BY in NUMBER,
19 X_LAST_UPDATE_LOGIN in NUMBER
20 ) is
21 cursor C is select ROWID from FND_PRINTER_STYLES
22 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME
23 ;
24 begin
25 insert into FND_PRINTER_STYLES (
26 PRINTER_STYLE_NAME,
27 SEQUENCE,
28 WIDTH,
29 LENGTH,
30 DESCRIPTION,
31 ORIENTATION,
32 SRW_DRIVER,
33 HEADER_FLAG,
34 CREATION_DATE,
35 CREATED_BY,
36 LAST_UPDATE_DATE,
37 LAST_UPDATED_BY,
38 LAST_UPDATE_LOGIN
39 ) values (
40 X_PRINTER_STYLE_NAME,
41 X_SEQUENCE,
42 X_WIDTH,
43 X_LENGTH,
44 X_DESCRIPTION,
45 X_ORIENTATION,
46 X_SRW_DRIVER,
47 X_HEADER_FLAG,
48 X_CREATION_DATE,
49 X_CREATED_BY,
50 X_LAST_UPDATE_DATE,
51 X_LAST_UPDATED_BY,
52 X_LAST_UPDATE_LOGIN
53 );
54
55 insert into FND_PRINTER_STYLES_TL (
56 PRINTER_STYLE_NAME,
57 USER_PRINTER_STYLE_NAME,
58 LAST_UPDATE_DATE,
59 LAST_UPDATED_BY,
60 CREATION_DATE,
61 CREATED_BY,
62 LAST_UPDATE_LOGIN,
63 LANGUAGE,
64 SOURCE_LANG
65 ) select
66 X_PRINTER_STYLE_NAME,
67 X_USER_PRINTER_STYLE_NAME,
68 X_LAST_UPDATE_DATE,
69 X_LAST_UPDATED_BY,
70 X_CREATION_DATE,
71 X_CREATED_BY,
72 X_LAST_UPDATE_LOGIN,
73 L.LANGUAGE_CODE,
74 userenv('LANG')
75 from FND_LANGUAGES L
76 where L.INSTALLED_FLAG in ('I', 'B')
77 and not exists
78 (select NULL
79 from FND_PRINTER_STYLES_TL T
80 where T.PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME
81 and T.LANGUAGE = L.LANGUAGE_CODE);
82
83 open c;
84 fetch c into X_ROWID;
85 if (c%notfound) then
86 close c;
87 raise no_data_found;
88 end if;
89 close c;
90
91 end INSERT_ROW;
92
93 procedure LOCK_ROW (
94 X_PRINTER_STYLE_NAME in VARCHAR2,
95 X_SEQUENCE in NUMBER,
96 X_WIDTH in NUMBER,
97 X_LENGTH in NUMBER,
98 X_DESCRIPTION in VARCHAR2,
99 X_ORIENTATION in VARCHAR2,
100 X_SRW_DRIVER in VARCHAR2,
101 X_HEADER_FLAG in VARCHAR2,
102 X_USER_PRINTER_STYLE_NAME in VARCHAR2
103 ) is
104 cursor c is select
105 SEQUENCE,
106 WIDTH,
107 LENGTH,
108 DESCRIPTION,
109 ORIENTATION,
110 SRW_DRIVER,
111 HEADER_FLAG
112 from FND_PRINTER_STYLES
113 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME
114 for update of PRINTER_STYLE_NAME nowait;
115 recinfo c%rowtype;
116
117 cursor c1 is select
118 USER_PRINTER_STYLE_NAME
119 from FND_PRINTER_STYLES_TL
120 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME
121 and LANGUAGE = userenv('LANG')
122 for update of PRINTER_STYLE_NAME nowait;
123 tlinfo c1%rowtype;
124
125 begin
126 open c;
127 fetch c into recinfo;
128 if (c%notfound) then
129 close c;
130 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
131 app_exception.raise_exception;
132 end if;
133 close c;
134 if ( (recinfo.SEQUENCE = X_SEQUENCE)
135 AND (recinfo.WIDTH = X_WIDTH)
136 AND (recinfo.LENGTH = X_LENGTH)
137 AND ((recinfo.DESCRIPTION = X_DESCRIPTION)
138 OR ((recinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
139 AND ((recinfo.ORIENTATION = X_ORIENTATION)
140 OR ((recinfo.ORIENTATION is null) AND (X_ORIENTATION is null)))
141 AND ((recinfo.SRW_DRIVER = X_SRW_DRIVER)
142 OR ((recinfo.SRW_DRIVER is null) AND (X_SRW_DRIVER is null)))
143 AND ((recinfo.HEADER_FLAG = X_HEADER_FLAG)
144 OR ((recinfo.HEADER_FLAG is null) AND (X_HEADER_FLAG is null)))
145 ) then
146 null;
147 else
148 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
149 app_exception.raise_exception;
150 end if;
151
152 open c1;
153 fetch c1 into tlinfo;
154 if (c1%notfound) then
155 close c1;
156 return;
157 end if;
158 close c1;
159
160 if ( (tlinfo.USER_PRINTER_STYLE_NAME = X_USER_PRINTER_STYLE_NAME)
161 ) then
162 null;
163 else
164 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
165 app_exception.raise_exception;
166 end if;
167 return;
168 end LOCK_ROW;
169
170 procedure UPDATE_ROW (
171 X_PRINTER_STYLE_NAME in VARCHAR2,
172 X_SEQUENCE in NUMBER,
173 X_WIDTH in NUMBER,
174 X_LENGTH in NUMBER,
175 X_DESCRIPTION in VARCHAR2,
176 X_ORIENTATION in VARCHAR2,
177 X_SRW_DRIVER in VARCHAR2,
178 X_HEADER_FLAG in VARCHAR2,
179 X_USER_PRINTER_STYLE_NAME in VARCHAR2,
180 X_LAST_UPDATE_DATE in DATE,
181 X_LAST_UPDATED_BY in NUMBER,
182 X_LAST_UPDATE_LOGIN in NUMBER
183 ) is
184 begin
185 update FND_PRINTER_STYLES set
186 SEQUENCE = X_SEQUENCE,
187 WIDTH = X_WIDTH,
188 LENGTH = X_LENGTH,
189 DESCRIPTION = X_DESCRIPTION,
190 ORIENTATION = X_ORIENTATION,
191 SRW_DRIVER = X_SRW_DRIVER,
192 HEADER_FLAG = X_HEADER_FLAG,
193 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
194 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
195 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
196 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME;
197
198 if (sql%notfound) then
199 raise no_data_found;
200 end if;
201
202 update FND_PRINTER_STYLES_TL set
203 USER_PRINTER_STYLE_NAME = X_USER_PRINTER_STYLE_NAME,
204 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
205 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
206 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
207 SOURCE_LANG = userenv('LANG')
208 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME
209 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
210
211 if (sql%notfound) then
212 raise no_data_found;
213 end if;
214 end UPDATE_ROW;
215
216 procedure DELETE_ROW (
217 X_PRINTER_STYLE_NAME in VARCHAR2
218 ) is
219 begin
220 delete from FND_PRINTER_STYLES
221 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME;
222
223 if (sql%notfound) then
224 raise no_data_found;
225 end if;
226
227 delete from FND_PRINTER_STYLES_TL
228 where PRINTER_STYLE_NAME = X_PRINTER_STYLE_NAME;
229
230 if (sql%notfound) then
231 raise no_data_found;
232 end if;
233 end DELETE_ROW;
234
235 procedure ADD_LANGUAGE
236 is
237 begin
238 /* Mar/19/03 requested by Ric Ginsberg */
239 /* The following delete and update statements are commented out */
240 /* as a quick workaround to fix the time-consuming table handler issue */
241 /* Eventually we'll need to turn them into a separate fix_language procedure */
242 /*
243
244 delete from FND_PRINTER_STYLES_TL T
245 where not exists
246 (select NULL
247 from FND_PRINTER_STYLES B
248 where B.PRINTER_STYLE_NAME = T.PRINTER_STYLE_NAME
249 );
250
251 update FND_PRINTER_STYLES_TL T set (
252 USER_PRINTER_STYLE_NAME
253 ) = (select
254 B.USER_PRINTER_STYLE_NAME
255 from FND_PRINTER_STYLES_TL B
256 where B.PRINTER_STYLE_NAME = T.PRINTER_STYLE_NAME
257 and B.LANGUAGE = T.SOURCE_LANG)
258 where (
259 T.PRINTER_STYLE_NAME,
260 T.LANGUAGE
261 ) in (select
262 SUBT.PRINTER_STYLE_NAME,
263 SUBT.LANGUAGE
264 from FND_PRINTER_STYLES_TL SUBB, FND_PRINTER_STYLES_TL SUBT
265 where SUBB.PRINTER_STYLE_NAME = SUBT.PRINTER_STYLE_NAME
266 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
267 and (SUBB.USER_PRINTER_STYLE_NAME <> SUBT.USER_PRINTER_STYLE_NAME
268 ));
269 */
270
271 insert into FND_PRINTER_STYLES_TL (
272 PRINTER_STYLE_NAME,
273 USER_PRINTER_STYLE_NAME,
274 LAST_UPDATE_DATE,
275 LAST_UPDATED_BY,
276 CREATION_DATE,
277 CREATED_BY,
278 LAST_UPDATE_LOGIN,
279 LANGUAGE,
280 SOURCE_LANG
281 ) select
282 B.PRINTER_STYLE_NAME,
283 B.USER_PRINTER_STYLE_NAME,
284 B.LAST_UPDATE_DATE,
285 B.LAST_UPDATED_BY,
286 B.CREATION_DATE,
287 B.CREATED_BY,
288 B.LAST_UPDATE_LOGIN,
289 L.LANGUAGE_CODE,
290 B.SOURCE_LANG
291 from FND_PRINTER_STYLES_TL B, FND_LANGUAGES L
292 where L.INSTALLED_FLAG in ('I', 'B')
293 and B.LANGUAGE = userenv('LANG')
294 and not exists
295 (select NULL
296 from FND_PRINTER_STYLES_TL T
297 where T.PRINTER_STYLE_NAME = B.PRINTER_STYLE_NAME
298 and T.LANGUAGE = L.LANGUAGE_CODE);
299 end ADD_LANGUAGE;
300
301 end FND_PRINTER_STYLES_PKG;