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