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