[Home] [Help]
PACKAGE BODY: APPS.IGS_OR_INST_STAT_PKG
Source
1 package body IGS_OR_INST_STAT_PKG AS
2 /* $Header: IGSOI05B.pls 120.0 2005/06/01 23:09:01 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_OR_INST_STAT%RowType;
6 new_references IGS_OR_INST_STAT%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_institution_status IN VARCHAR2 DEFAULT NULL,
12 x_description IN VARCHAR2 DEFAULT NULL,
13 x_s_institution_status IN VARCHAR2 DEFAULT NULL,
14 x_closed_ind IN VARCHAR2 DEFAULT NULL,
15 x_creation_date IN DATE DEFAULT NULL,
16 x_created_by IN NUMBER DEFAULT NULL,
17 x_last_update_date IN DATE DEFAULT NULL,
18 x_last_updated_by IN NUMBER DEFAULT NULL,
19 x_last_update_login IN NUMBER DEFAULT NULL
20 ) AS
21 CURSOR cur_old_ref_values IS
22 SELECT *
23 FROM IGS_OR_INST_STAT
24 WHERE rowid = x_rowid;
25 BEGIN
26 l_rowid := x_rowid;
27 -- Code for setting the Old and New Reference Values.
28 -- Populate Old Values.
29 Open cur_old_ref_values;
30 Fetch cur_old_ref_values INTO old_references;
31 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
32 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
33 IGS_GE_MSG_STACK.ADD;
34 App_Exception.Raise_Exception;
35 Close cur_old_ref_values;
36 Return;
37 END IF;
38 Close cur_old_ref_values;
39 -- Populate New Values.
40 new_references.institution_status := x_institution_status;
41 new_references.description := x_description;
42 new_references.s_institution_status := x_s_institution_status;
43 new_references.closed_ind := x_closed_ind;
44 IF (p_action = 'UPDATE') THEN
45 new_references.creation_date := old_references.creation_date;
46 new_references.created_by := old_references.created_by;
47 ELSE
48 new_references.creation_date := x_creation_date;
49 new_references.created_by := x_created_by;
50 END IF;
51 new_references.last_update_date := x_last_update_date;
52 new_references.last_updated_by := x_last_updated_by;
53 new_references.last_update_login := x_last_update_login;
54 END Set_Column_Values;
55
56 PROCEDURE Check_Child_Existance AS
57 BEGIN
58 IGS_OR_INSTITUTION_PKG.GET_FK_IGS_OR_INST_STAT (
59 old_references.institution_status
60 );
61 END Check_Child_Existance;
62
63 FUNCTION Get_PK_For_Validation (
64 x_institution_status IN VARCHAR2
65 )RETURN BOOLEAN AS
66 CURSOR cur_rowid IS
67 SELECT rowid
68 FROM IGS_OR_INST_STAT
69 WHERE institution_status = x_institution_status
70 FOR UPDATE NOWAIT;
71 lv_rowid cur_rowid%RowType;
72 BEGIN
73 Open cur_rowid;
74 Fetch cur_rowid INTO lv_rowid;
75 IF (cur_rowid%FOUND) THEN
76 Close cur_rowid;
77 RETURN(TRUE);
78 ELSE
79 Close cur_rowid;
80 RETURN(FALSE);
81 END IF;
82 END Get_PK_For_Validation;
83
84 PROCEDURE Before_DML (
85 p_action IN VARCHAR2,
86 x_rowid IN VARCHAR2 DEFAULT NULL,
87 x_institution_status IN VARCHAR2 DEFAULT NULL,
88 x_description IN VARCHAR2 DEFAULT NULL,
89 x_s_institution_status IN VARCHAR2 DEFAULT NULL,
90 x_closed_ind IN VARCHAR2 DEFAULT NULL,
91 x_creation_date IN DATE DEFAULT NULL,
92 x_created_by IN NUMBER DEFAULT NULL,
93 x_last_update_date IN DATE DEFAULT NULL,
94 x_last_updated_by IN NUMBER DEFAULT NULL,
95 x_last_update_login IN NUMBER DEFAULT NULL
96 ) AS
97 BEGIN
98 Set_Column_Values (
99 p_action,
100 x_rowid,
101 x_institution_status,
102 x_description,
103 x_s_institution_status,
104 x_closed_ind,
105 x_creation_date,
106 x_created_by,
107 x_last_update_date,
108 x_last_updated_by,
109 x_last_update_login
110 );
111 IF (p_action = 'INSERT') THEN
112 -- Call all the procedures related to Before Insert.
113
114 IF Get_PK_For_Validation (
115 new_references.institution_status
116 ) then
117 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
118 IGS_GE_MSG_STACK.ADD;
119 App_Exception.Raise_Exception;
120 END IF;
121
122 Check_Constraints ;
123
124 ELSIF (p_action = 'UPDATE') THEN
125 -- Call all the procedures related to Before Update.
126 Check_Constraints ;
127
128 ELSIF (p_action = 'DELETE') THEN
129 -- Call all the procedures related to Before Delete.
130 Null;
131 Check_Child_Existance;
132
133 ELSIF (p_action = 'VALIDATE_INSERT') THEN
134
135 if Get_PK_For_Validation (
136 new_references.institution_status
137 ) then
138
139 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
140 IGS_GE_MSG_STACK.ADD;
141 App_Exception.Raise_Exception;
142 end if;
143
144 Check_Constraints ;
145
146 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
147
148 Check_Constraints ;
149
150 ELSIF (p_action = 'VALIDATE_DELETE') THEN
151
152 Check_Child_Existance ;
153
154
155 END IF;
156 END Before_DML;
157
158 PROCEDURE After_DML (
159 p_action IN VARCHAR2,
160 x_rowid IN VARCHAR2
161 ) AS
162 BEGIN
163 l_rowid := x_rowid;
164 END After_DML;
165
166 procedure INSERT_ROW (
167 X_ROWID in out NOCOPY VARCHAR2,
168 X_INSTITUTION_STATUS in VARCHAR2,
169 X_DESCRIPTION in VARCHAR2,
170 X_S_INSTITUTION_STATUS in VARCHAR2,
171 X_CLOSED_IND in VARCHAR2,
172 X_MODE in VARCHAR2 default 'R'
173 ) AS
174 cursor C is select ROWID from IGS_OR_INST_STAT
175 where INSTITUTION_STATUS = X_INSTITUTION_STATUS;
176 X_LAST_UPDATE_DATE DATE;
177 X_LAST_UPDATED_BY NUMBER;
178 X_LAST_UPDATE_LOGIN NUMBER;
179 begin
180 X_LAST_UPDATE_DATE := SYSDATE;
181 if(X_MODE = 'I') then
182 X_LAST_UPDATED_BY := 1;
183 X_LAST_UPDATE_LOGIN := 0;
184 elsif (X_MODE = 'R') then
185 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
186 if X_LAST_UPDATED_BY is NULL then
187 X_LAST_UPDATED_BY := -1;
188 end if;
189 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
190 if X_LAST_UPDATE_LOGIN is NULL then
191 X_LAST_UPDATE_LOGIN := -1;
192 end if;
193 else
194 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
195 app_exception.raise_exception;
196 end if;
197 Before_DML(
198 p_action=>'INSERT',
199 x_rowid=>X_ROWID,
200 x_closed_ind=>NVL(X_CLOSED_IND,'N'),
201 x_description=>X_DESCRIPTION,
202 x_institution_status=>X_INSTITUTION_STATUS,
203 x_s_institution_status=>X_S_INSTITUTION_STATUS,
204 x_creation_date=>X_LAST_UPDATE_DATE,
205 x_created_by=>X_LAST_UPDATED_BY,
206 x_last_update_date=>X_LAST_UPDATE_DATE,
207 x_last_updated_by=>X_LAST_UPDATED_BY,
208 x_last_update_login=>X_LAST_UPDATE_LOGIN
209 );
210 insert into IGS_OR_INST_STAT (
211 INSTITUTION_STATUS,
212 DESCRIPTION,
213 S_INSTITUTION_STATUS,
214 CLOSED_IND,
215 CREATION_DATE,
216 CREATED_BY,
217 LAST_UPDATE_DATE,
218 LAST_UPDATED_BY,
219 LAST_UPDATE_LOGIN
220 ) values (
221 NEW_REFERENCES.INSTITUTION_STATUS,
222 NEW_REFERENCES.DESCRIPTION,
223 NEW_REFERENCES.S_INSTITUTION_STATUS,
224 NEW_REFERENCES.CLOSED_IND,
225 X_LAST_UPDATE_DATE,
226 X_LAST_UPDATED_BY,
227 X_LAST_UPDATE_DATE,
228 X_LAST_UPDATED_BY,
229 X_LAST_UPDATE_LOGIN
230 );
231 open c;
232 fetch c into X_ROWID;
233 if (c%notfound) then
234 close c;
235 raise no_data_found;
236 end if;
237 close c;
238 After_DML(
239 p_action=>'INSERT',
240 x_rowid=>X_ROWID
241 );
242 end INSERT_ROW;
243
244 procedure LOCK_ROW (
245 X_ROWID in VARCHAR2,
246 X_INSTITUTION_STATUS in VARCHAR2,
247 X_DESCRIPTION in VARCHAR2,
248 X_S_INSTITUTION_STATUS in VARCHAR2,
249 X_CLOSED_IND in VARCHAR2
250 ) AS
251 cursor c1 is select
252 DESCRIPTION,
253 S_INSTITUTION_STATUS,
254 CLOSED_IND
255 from IGS_OR_INST_STAT
256 where ROWID = X_ROWID
257 for update nowait ;
258 tlinfo c1%rowtype;
259 begin
260 open c1;
261 fetch c1 into tlinfo;
262 if (c1%notfound) then
263 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
264 app_exception.raise_exception;
265 close c1;
266 return;
267 end if;
268 close c1;
269 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
270 AND (tlinfo.S_INSTITUTION_STATUS = X_S_INSTITUTION_STATUS)
271 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
272 ) then
273 null;
274 else
275 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
276 app_exception.raise_exception;
277 end if;
278 return;
279 end LOCK_ROW;
280
281 procedure UPDATE_ROW (
282 X_ROWID in VARCHAR2,
283 X_INSTITUTION_STATUS in VARCHAR2,
284 X_DESCRIPTION in VARCHAR2,
285 X_S_INSTITUTION_STATUS in VARCHAR2,
286 X_CLOSED_IND in VARCHAR2,
287 X_MODE in VARCHAR2 default 'R'
288 ) AS
289 X_LAST_UPDATE_DATE DATE;
290 X_LAST_UPDATED_BY NUMBER;
291 X_LAST_UPDATE_LOGIN NUMBER;
292 begin
293 X_LAST_UPDATE_DATE := SYSDATE;
294 if(X_MODE = 'I') then
295 X_LAST_UPDATED_BY := 1;
296 X_LAST_UPDATE_LOGIN := 0;
297 elsif (X_MODE = 'R') then
298 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
299 if X_LAST_UPDATED_BY is NULL then
300 X_LAST_UPDATED_BY := -1;
301 end if;
302 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
303 if X_LAST_UPDATE_LOGIN is NULL then
304 X_LAST_UPDATE_LOGIN := -1;
305 end if;
306 else
307 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
308 app_exception.raise_exception;
309 end if;
310 Before_DML(
311 p_action=>'UPDATE',
312 x_rowid=>X_ROWID,
313 x_closed_ind=>NVL(X_CLOSED_IND,'N'),
314 x_description=>X_DESCRIPTION,
315 x_institution_status=>X_INSTITUTION_STATUS,
316 x_s_institution_status=>X_S_INSTITUTION_STATUS,
317 x_creation_date=>X_LAST_UPDATE_DATE,
318 x_created_by=>X_LAST_UPDATED_BY,
319 x_last_update_date=>X_LAST_UPDATE_DATE,
320 x_last_updated_by=>X_LAST_UPDATED_BY,
321 x_last_update_login=>X_LAST_UPDATE_LOGIN
322 );
323 update IGS_OR_INST_STAT set
324 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
325 S_INSTITUTION_STATUS = NEW_REFERENCES.S_INSTITUTION_STATUS,
326 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
327 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
328 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
329 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
330 where ROWID = X_ROWID ;
331 if (sql%notfound) then
332 raise no_data_found;
333 end if;
334 After_DML(
335 p_action=>'UPDATE',
336 x_rowid=>X_ROWID
337 );
338 end UPDATE_ROW;
339
340 procedure ADD_ROW (
341 X_ROWID in out NOCOPY VARCHAR2,
342 X_INSTITUTION_STATUS in VARCHAR2,
343 X_DESCRIPTION in VARCHAR2,
344 X_S_INSTITUTION_STATUS in VARCHAR2,
345 X_CLOSED_IND in VARCHAR2,
346 X_MODE in VARCHAR2 default 'R'
347 ) AS
348 cursor c1 is select rowid from IGS_OR_INST_STAT
349 where INSTITUTION_STATUS = X_INSTITUTION_STATUS
350 ;
351 begin
352 open c1;
353 fetch c1 into X_ROWID ;
354 if (c1%notfound) then
355 close c1;
356 INSERT_ROW (
357 X_ROWID,
358 X_INSTITUTION_STATUS,
359 X_DESCRIPTION,
360 X_S_INSTITUTION_STATUS,
361 X_CLOSED_IND,
362 X_MODE);
363 return;
364 end if;
365 close c1;
366 UPDATE_ROW (
367 X_ROWID,
368 X_INSTITUTION_STATUS,
369 X_DESCRIPTION,
370 X_S_INSTITUTION_STATUS,
371 X_CLOSED_IND,
372 X_MODE);
373 end ADD_ROW;
374
375 procedure DELETE_ROW (
376 X_ROWID in VARCHAR2
377 ) AS
378 begin
379 Before_DML(
380 p_action=>'DELETE',
381 x_rowid=>X_ROWID
382 );
383 delete from IGS_OR_INST_STAT
384 where ROWID = X_ROWID ;
385 if (sql%notfound) then
386 raise no_data_found;
387 end if;
388 After_DML(
389 p_action=>'DELETE',
390 x_rowid=>X_ROWID
391 );
392 end DELETE_ROW;
393
394 procedure Check_Constraints (
395 Column_Name in VARCHAR2 DEFAULT NULL ,
396 Column_Value in VARCHAR2 DEFAULT NULL
397 ) AS
398 begin
399 IF Column_Name is null THEN
400 NULL;
401 ELSIF upper(Column_name) = 'CLOSED_IND' THEN
402 new_references.CLOSED_IND:= COLUMN_VALUE ;
403 ELSIF upper(Column_name) = 'INSTITUTION_STATUS' THEN
404 new_references.INSTITUTION_STATUS:= COLUMN_VALUE ;
405 ELSIF upper(Column_name) = 'S_INSTITUTION_STATUS' THEN
406 new_references.S_INSTITUTION_STATUS:= COLUMN_VALUE ;
407 END IF ;
408 IF upper(Column_name) = 'CLOSED_IND' OR COLUMN_NAME IS NULL THEN
409 IF new_references.CLOSED_IND<> upper(new_references.CLOSED_IND) then
410 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
411 IGS_GE_MSG_STACK.ADD;
412 App_Exception.Raise_Exception ;
413 END IF;
414 IF new_references.CLOSED_IND not in ('Y','N') then
415 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
416 IGS_GE_MSG_STACK.ADD;
417 App_Exception.Raise_Exception ;
418 END IF;
419 END IF ;
420 IF upper(Column_name) = 'INSTITUTION_STATUS' OR COLUMN_NAME IS NULL THEN
421 IF new_references.INSTITUTION_STATUS<> upper(new_references.INSTITUTION_STATUS) then
422 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
423 IGS_GE_MSG_STACK.ADD;
424 App_Exception.Raise_Exception ;
425 END IF;
426 END IF ;
427 IF upper(Column_name) = 'S_INSTITUTION_STATUS' OR COLUMN_NAME IS NULL THEN
428 IF new_references.S_INSTITUTION_STATUS<> upper(new_references.S_INSTITUTION_STATUS) then
429 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
430 IGS_GE_MSG_STACK.ADD;
431 App_Exception.Raise_Exception ;
432 END IF;
433 IF new_references.S_INSTITUTION_STATUS NOT IN ( 'INACTIVE' , 'ACTIVE' ) then
434 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
435 IGS_GE_MSG_STACK.ADD;
436 App_Exception.Raise_Exception ;
437 END IF;
438 END IF ;
439 end Check_Constraints ;
440 end IGS_OR_INST_STAT_PKG;