DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_GOVT_ATD_TYPE_PKG

Source


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