DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_STAGE_TYPE_PKG

Source


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