DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_GRP_TYPE_PKG

Source


1 package body IGS_PS_GRP_TYPE_PKG AS
2   /* $Header: IGSPI18B.pls 115.3 2002/11/29 02:03:59 nsidana ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_PS_GRP_TYPE%RowType;
6   new_references IGS_PS_GRP_TYPE%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_course_group_type IN VARCHAR2 DEFAULT NULL,
12     x_description IN VARCHAR2 DEFAULT NULL,
13     x_s_course_group_type 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_PS_GRP_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       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
37       IGS_GE_MSG_STACK.ADD;
38       App_Exception.Raise_Exception;
39       Close cur_old_ref_values;
40       Return;
41     END IF;
42     Close cur_old_ref_values;
43 
44     -- Populate New Values.
45     new_references.course_group_type := x_course_group_type;
46     new_references.description := x_description;
47     new_references.s_course_group_type := x_s_course_group_type;
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   -- Trigger description :-
63   -- "OSS_TST".trg_cgt_br_iu
64   -- BEFORE INSERT OR UPDATE
65   -- ON IGS_PS_GRP_TYPE
66   -- FOR EACH ROW
67 
68   PROCEDURE BeforeRowInsertUpdate1(
69     p_inserting IN BOOLEAN DEFAULT FALSE,
70     p_updating IN BOOLEAN DEFAULT FALSE,
71     p_deleting IN BOOLEAN DEFAULT FALSE
72     ) AS
73 	v_message_name	varchar2(30);
74   BEGIN
75 	-- Validate system IGS_PS_COURSE group type.
76 	IF p_inserting OR
77 		(p_updating AND
78 		((old_references.s_course_group_type <> new_references.s_course_group_type) OR
79 		 (old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N'))) THEN
80 		IF IGS_PS_VAL_CGT.crsp_val_cgt_sys_cgt (
81 				new_references.s_course_group_type,
82 				v_message_name) = FALSE THEN
83 			Fnd_Message.Set_Name('IGS',v_message_name);
84 			 IGS_GE_MSG_STACK.ADD;
85 			App_Exception.Raise_Exception;
86 		END IF;
87 	END IF;
88 
89   END BeforeRowInsertUpdate1;
90 
91  PROCEDURE Check_Constraints (
92  Column_Name	IN VARCHAR2	DEFAULT NULL,
93  Column_Value 	IN VARCHAR2	DEFAULT NULL
94  )
95  AS
96  BEGIN
97 
98 	IF column_name is null then
99 	    NULL;
100 	ELSIF upper(Column_name) = 'CLOSED_IND' then
101 	    new_references.closed_ind := column_value;
102 	ELSIF upper(Column_name) = 'COURSE_GROUP_TYPE' then
103 	    new_references.course_group_type := column_value;
104 	ELSIF upper(Column_name) = 'S_COURSE_GROUP_TYPE' then
105 	    new_references.s_course_group_type := column_value;
106 	END IF;
107 
108     IF upper(column_name) = 'COURSE_GROUP_TYPE' OR
109     column_name is null Then
110 	   IF ( new_references.course_group_type <> UPPER(new_references.course_group_type) ) Then
111       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
112       	 IGS_GE_MSG_STACK.ADD;
113              App_Exception.Raise_Exception;
114           END IF;
115       END IF;
116 
117     IF upper(column_name) = 'S_COURSE_GROUP_TYPE' OR
118     column_name is null Then
119 	   IF ( new_references.s_course_group_type <> UPPER(new_references.s_course_group_type) ) Then
120       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
121       	 IGS_GE_MSG_STACK.ADD;
122              App_Exception.Raise_Exception;
123           END IF;
124       END IF;
125 
126     IF upper(column_name) = 'CLOSED_IND' OR
127     column_name is null Then
128 	   IF ( new_references.closed_ind NOT IN ( 'Y' , 'N' ) ) Then
129       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
130       	 IGS_GE_MSG_STACK.ADD;
131              App_Exception.Raise_Exception;
132           END IF;
133       END IF;
134 
135   END Check_Constraints;
136 
137   PROCEDURE Check_Parent_Existance AS
138   BEGIN
139 
140     IF (((old_references.s_course_group_type = new_references.s_course_group_type)) OR
141         ((new_references.s_course_group_type IS NULL))) THEN
142       NULL;
143     ELSE
144 	 IF NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation (
145 	  'COURSE_GROUP_TYPE',
146         new_references.s_course_group_type
147         ) THEN
148 	        Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
149 	        IGS_GE_MSG_STACK.ADD;
150 	        App_Exception.Raise_Exception;
151 	END IF;
152     END IF;
153 NULL;
154   END Check_Parent_Existance;
155 
156   PROCEDURE Check_Child_Existance AS
157   BEGIN
158 
159     IGS_PS_GRP_PKG.GET_FK_IGS_PS_GRP_TYPE (
160       old_references.course_group_type
161       );
162 
163   END Check_Child_Existance;
164 
165   FUNCTION Get_PK_For_Validation (
166     x_course_group_type IN VARCHAR2
167     )
168   RETURN BOOLEAN AS
169 
170     CURSOR cur_rowid IS
171       SELECT   rowid
172       FROM     IGS_PS_GRP_TYPE
173       WHERE    course_group_type = x_course_group_type
174       FOR UPDATE NOWAIT;
175 
176     lv_rowid cur_rowid%RowType;
177 
178   BEGIN
179 
180     Open cur_rowid;
181     Fetch cur_rowid INTO lv_rowid;
182     IF (cur_rowid%FOUND) THEN
183       Close cur_rowid;
184       Return (TRUE);
185     ELSE
186 	Close cur_rowid;
187       Return (FALSE);
188     END IF;
189 
190   END Get_PK_For_Validation;
191 
192   PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
193     x_s_course_group_type IN VARCHAR2
194     ) AS
195 
196     CURSOR cur_rowid IS
197       SELECT   rowid
198       FROM     IGS_PS_GRP_TYPE
199       WHERE    s_course_group_type = x_s_course_group_type ;
200 
201     lv_rowid cur_rowid%RowType;
202 
203   BEGIN
204 
205     Open cur_rowid;
206     Fetch cur_rowid INTO lv_rowid;
207     IF (cur_rowid%FOUND) THEN
208       Fnd_Message.Set_Name ('IGS', 'IGS_PS_CGT_LOOKUPS_FK');
209       IGS_GE_MSG_STACK.ADD;
210       App_Exception.Raise_Exception;
211       Close cur_rowid;
212       Return;
213     END IF;
214     Close cur_rowid;
215 
216   END GET_FK_IGS_LOOKUPS_VIEW;
217 
218   PROCEDURE Before_DML (
219     p_action IN VARCHAR2,
220     x_rowid IN VARCHAR2 DEFAULT NULL,
221     x_course_group_type IN VARCHAR2 DEFAULT NULL,
222     x_description IN VARCHAR2 DEFAULT NULL,
223     x_s_course_group_type IN VARCHAR2 DEFAULT NULL,
224     x_closed_ind IN VARCHAR2 DEFAULT NULL,
225     x_creation_date IN DATE DEFAULT NULL,
226     x_created_by IN NUMBER DEFAULT NULL,
227     x_last_update_date IN DATE DEFAULT NULL,
228     x_last_updated_by IN NUMBER DEFAULT NULL,
229     x_last_update_login IN NUMBER DEFAULT NULL
230   ) AS
231   BEGIN
232 
233     Set_Column_Values (
234       p_action,
235       x_rowid,
236       x_course_group_type,
237       x_description,
238       x_s_course_group_type,
239       x_closed_ind,
240       x_creation_date,
241       x_created_by,
242       x_last_update_date,
243       x_last_updated_by,
244       x_last_update_login
245     );
246 
247     IF (p_action = 'INSERT') THEN
248       -- Call all the procedures related to Before Insert.
249       BeforeRowInsertUpdate1 ( p_inserting => TRUE );
250 	IF Get_PK_For_Validation (
251       new_references.course_group_type ) THEN
252 	   Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
253 	   IGS_GE_MSG_STACK.ADD;
254          App_Exception.Raise_Exception;
255 	END IF;
256       Check_Constraints;
257       Check_Parent_Existance;
258     ELSIF (p_action = 'UPDATE') THEN
259       -- Call all the procedures related to Before Update.
260       BeforeRowInsertUpdate1 ( p_updating => TRUE );
261       Check_Constraints;
262       Check_Parent_Existance;
263     ELSIF (p_action = 'DELETE') THEN
264       -- Call all the procedures related to Before Delete.
265       Check_Child_Existance;
266     ELSIF (p_action = 'VALIDATE_INSERT') THEN
267 	IF  Get_PK_For_Validation (
268       new_references.course_group_type ) THEN
269 	    Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
270 	    IGS_GE_MSG_STACK.ADD;
271 	    App_Exception.Raise_Exception;
272 	END IF;
273 	Check_Constraints;
274     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
275 	Check_Constraints;
276     ELSIF (p_action = 'VALIDATE_DELETE') THEN
277       Check_Child_Existance;
278     END IF;
279 
280   END Before_DML;
281 
282   PROCEDURE After_DML (
283     p_action IN VARCHAR2,
284     x_rowid IN VARCHAR2
285   ) AS
286   BEGIN
287 
288     l_rowid := x_rowid;
289 
290 
291 
292   END After_DML;
293 
294 procedure INSERT_ROW (
295   X_ROWID in out NOCOPY VARCHAR2,
296   X_COURSE_GROUP_TYPE in VARCHAR2,
297   X_DESCRIPTION in VARCHAR2,
298   X_S_COURSE_GROUP_TYPE in VARCHAR2,
299   X_CLOSED_IND in VARCHAR2,
300   X_MODE in VARCHAR2 default 'R'
301   ) AS
302     cursor C is select ROWID from IGS_PS_GRP_TYPE
303       where COURSE_GROUP_TYPE = X_COURSE_GROUP_TYPE;
304     X_LAST_UPDATE_DATE DATE;
305     X_LAST_UPDATED_BY NUMBER;
306     X_LAST_UPDATE_LOGIN NUMBER;
307 begin
308   X_LAST_UPDATE_DATE := SYSDATE;
309   if(X_MODE = 'I') then
310     X_LAST_UPDATED_BY := 1;
311     X_LAST_UPDATE_LOGIN := 0;
312   elsif (X_MODE = 'R') then
313     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
314     if X_LAST_UPDATED_BY is NULL then
315       X_LAST_UPDATED_BY := -1;
316     end if;
317     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
318     if X_LAST_UPDATE_LOGIN is NULL then
319       X_LAST_UPDATE_LOGIN := -1;
320     end if;
321   else
322     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
323     IGS_GE_MSG_STACK.ADD;
324     app_exception.raise_exception;
325   end if;
326 Before_DML (
327     p_action => 'INSERT',
328     x_rowid => X_ROWID,
329     x_course_group_type => X_COURSE_GROUP_TYPE,
330     x_description => X_DESCRIPTION ,
331     x_s_course_group_type => X_S_COURSE_GROUP_TYPE ,
332     x_closed_ind => NVL(X_CLOSED_IND,'N') ,
333     x_creation_date => X_LAST_UPDATE_DATE  ,
334     x_created_by => X_LAST_UPDATED_BY ,
335     x_last_update_date => X_LAST_UPDATE_DATE  ,
336     x_last_updated_by => X_LAST_UPDATED_BY ,
337     x_last_update_login => X_LAST_UPDATE_LOGIN
338  );
339 
340   insert into IGS_PS_GRP_TYPE (
341     COURSE_GROUP_TYPE,
342     DESCRIPTION,
343     S_COURSE_GROUP_TYPE,
344     CLOSED_IND,
345     CREATION_DATE,
346     CREATED_BY,
347     LAST_UPDATE_DATE,
348     LAST_UPDATED_BY,
349     LAST_UPDATE_LOGIN
350   ) values (
351     NEW_REFERENCES.COURSE_GROUP_TYPE,
352     NEW_REFERENCES.DESCRIPTION,
353     NEW_REFERENCES.S_COURSE_GROUP_TYPE,
354     NEW_REFERENCES.CLOSED_IND,
355     X_LAST_UPDATE_DATE,
356     X_LAST_UPDATED_BY,
357     X_LAST_UPDATE_DATE,
358     X_LAST_UPDATED_BY,
359     X_LAST_UPDATE_LOGIN
360   );
361 
362   open c;
363   fetch c into X_ROWID;
364   if (c%notfound) then
365     close c;
366     raise no_data_found;
367   end if;
368   close c;
369 After_DML (
370 	p_action => 'INSERT',
371 	x_rowid => X_ROWID
372 );
373 end INSERT_ROW;
374 
375 procedure LOCK_ROW (
376   X_ROWID IN VARCHAR2,
377   X_COURSE_GROUP_TYPE in VARCHAR2,
378   X_DESCRIPTION in VARCHAR2,
379   X_S_COURSE_GROUP_TYPE in VARCHAR2,
380   X_CLOSED_IND in VARCHAR2
381 ) AS
382   cursor c1 is select
383       DESCRIPTION,
384       S_COURSE_GROUP_TYPE,
385       CLOSED_IND
386     from IGS_PS_GRP_TYPE
387     where ROWID = X_ROWID
388     for update nowait;
389   tlinfo c1%rowtype;
390 
391 begin
392   open c1;
393   fetch c1 into tlinfo;
394   if (c1%notfound) then
395     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
396     IGS_GE_MSG_STACK.ADD;
397     app_exception.raise_exception;
398     close c1;
399     return;
400   end if;
401   close c1;
402 
403   if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
404       AND (tlinfo.S_COURSE_GROUP_TYPE = X_S_COURSE_GROUP_TYPE)
405       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
406   ) then
407     null;
408   else
409     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
410     IGS_GE_MSG_STACK.ADD;
411     app_exception.raise_exception;
412   end if;
413   return;
414 end LOCK_ROW;
415 
416 procedure UPDATE_ROW (
417   X_ROWID IN VARCHAR2,
418   X_COURSE_GROUP_TYPE in VARCHAR2,
419   X_DESCRIPTION in VARCHAR2,
420   X_S_COURSE_GROUP_TYPE in VARCHAR2,
421   X_CLOSED_IND in VARCHAR2,
422   X_MODE in VARCHAR2 default 'R'
423   ) AS
424     X_LAST_UPDATE_DATE DATE;
425     X_LAST_UPDATED_BY NUMBER;
426     X_LAST_UPDATE_LOGIN NUMBER;
427 begin
428   X_LAST_UPDATE_DATE := SYSDATE;
429   if(X_MODE = 'I') then
430     X_LAST_UPDATED_BY := 1;
431     X_LAST_UPDATE_LOGIN := 0;
432   elsif (X_MODE = 'R') then
433     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
434     if X_LAST_UPDATED_BY is NULL then
435       X_LAST_UPDATED_BY := -1;
436     end if;
437     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
438     if X_LAST_UPDATE_LOGIN is NULL then
439       X_LAST_UPDATE_LOGIN := -1;
440     end if;
441   else
442     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
443     IGS_GE_MSG_STACK.ADD;
444     app_exception.raise_exception;
445   end if;
446 Before_DML (
447     p_action => 'UPDATE',
448     x_rowid => X_ROWID,
449     x_course_group_type => X_COURSE_GROUP_TYPE,
450     x_description => X_DESCRIPTION ,
451     x_s_course_group_type => X_S_COURSE_GROUP_TYPE ,
452     x_closed_ind => X_CLOSED_IND ,
453     x_creation_date => X_LAST_UPDATE_DATE  ,
454     x_created_by => X_LAST_UPDATED_BY ,
455     x_last_update_date => X_LAST_UPDATE_DATE  ,
456     x_last_updated_by => X_LAST_UPDATED_BY ,
457     x_last_update_login => X_LAST_UPDATE_LOGIN
458  );
459 
460   update IGS_PS_GRP_TYPE set
461     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
462     S_COURSE_GROUP_TYPE = NEW_REFERENCES.S_COURSE_GROUP_TYPE,
463     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
464     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
465     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
466     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
467   where ROWID = X_ROWID
468   ;
469   if (sql%notfound) then
470     raise no_data_found;
471   end if;
472 After_DML (
473 	p_action => 'UPDATE',
474 	x_rowid => X_ROWID
475 );
476 end UPDATE_ROW;
477 
478 procedure ADD_ROW (
479   X_ROWID in out NOCOPY VARCHAR2,
480   X_COURSE_GROUP_TYPE in VARCHAR2,
481   X_DESCRIPTION in VARCHAR2,
482   X_S_COURSE_GROUP_TYPE in VARCHAR2,
483   X_CLOSED_IND in VARCHAR2,
484   X_MODE in VARCHAR2 default 'R'
485   ) AS
486   cursor c1 is select rowid from IGS_PS_GRP_TYPE
487      where COURSE_GROUP_TYPE = X_COURSE_GROUP_TYPE
488   ;
489 begin
490   open c1;
491   fetch c1 into X_ROWID;
492   if (c1%notfound) then
493     close c1;
494     INSERT_ROW (
495      X_ROWID,
496      X_COURSE_GROUP_TYPE,
497      X_DESCRIPTION,
498      X_S_COURSE_GROUP_TYPE,
499      X_CLOSED_IND,
500      X_MODE);
501     return;
502   end if;
503   close c1;
504   UPDATE_ROW (
505    X_ROWID,
506    X_COURSE_GROUP_TYPE,
507    X_DESCRIPTION,
508    X_S_COURSE_GROUP_TYPE,
509    X_CLOSED_IND,
510    X_MODE);
511 end ADD_ROW;
512 
513 procedure DELETE_ROW (
514   X_ROWID in VARCHAR2
515 ) AS
516 begin
517 Before_DML (
518 	p_action => 'DELETE',
519 	x_rowid => X_ROWID
520 );
521   delete from IGS_PS_GRP_TYPE
522   where ROWID = X_ROWID;
523   if (sql%notfound) then
524     raise no_data_found;
525   end if;
526 After_DML (
527 	p_action => 'DELETE',
528 	x_rowid => X_ROWID
529 );
530 end DELETE_ROW;
531 
532 end IGS_PS_GRP_TYPE_PKG;