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