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