DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_GOVT_ATD_MODE_PKG

Source


1 package body IGS_PS_GOVT_ATD_MODE_PKG as
2  /* $Header: IGSPI56B.pls 115.3 2002/11/29 02:31:42 nsidana ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_PS_GOVT_ATD_MODE%RowType;
6   new_references IGS_PS_GOVT_ATD_MODE%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_govt_attendance_mode 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_GOVT_ATD_MODE
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.govt_attendance_mode := x_govt_attendance_mode;
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 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 modes.
68 	IF p_updating AND
69 	   old_references.closed_ind <> new_references.closed_ind THEN
70 		IF IGS_PS_VAL_GAM.crsp_val_gam_upd (
71 				new_references.govt_attendance_mode,
72 				new_references.closed_ind,
73 				v_message_name) = FALSE THEN
74 			FND_MESSAGE.SET_NAME('IGS',v_message_name);
75 			APP_EXCEPTION.RAISE_EXCEPTION;
76 		END IF;
77 	END IF;
78 
79 
80   END BeforeRowInsertUpdate1;
81 
82  PROCEDURE Check_Constraints (
83  Column_Name	IN	VARCHAR2	DEFAULT NULL,
84  Column_Value 	IN	VARCHAR2	DEFAULT NULL
85  )
86  AS
87  BEGIN
88  IF  column_name is null then
89      NULL;
90  ELSIF upper(Column_name) = 'CLOSED_IND' then
91      new_references.closed_ind := column_value;
92  ELSIF upper(Column_name) = 'GOVT_ATTENDANCE_MODE' then
93      new_references.govt_attendance_mode := column_value;
94 END IF;
95 
96 IF upper(column_name) = 'CLOSED_IND' OR
97      column_name is null Then
98      IF new_references.closed_ind NOT IN ('Y','N') THEN
99        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
100       IGS_GE_MSG_STACK.ADD;
101        App_Exception.Raise_Exception;
102       END IF;
103 END IF;
104 
105 IF upper(column_name) = 'GOVT_ATTENDANCE_MODE' OR
106      column_name is null Then
107      IF new_references.govt_attendance_mode <> UPPER(new_references.govt_attendance_mode) Then
108        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
109        IGS_GE_MSG_STACK.ADD;
110        App_Exception.Raise_Exception;
111      END IF;
112 END IF;
113 END check_constraints;
114 
115   PROCEDURE Check_Child_Existance AS
116   BEGIN
117 
118     IGS_EN_ATD_MODE_PKG.GET_FK_IGS_PS_GOVT_ATD_MODE (
119       old_references.govt_attendance_mode
120       );
121 
122   END Check_Child_Existance;
123 
124   FUNCTION Get_PK_For_Validation (
125     x_govt_attendance_mode IN VARCHAR2
126     ) RETURN BOOLEAN AS
127 
128     CURSOR cur_rowid IS
129       SELECT   rowid
130       FROM     IGS_PS_GOVT_ATD_MODE
131       WHERE    govt_attendance_mode = x_govt_attendance_mode
132       FOR UPDATE NOWAIT;
133 
134     lv_rowid cur_rowid%RowType;
135 
136   BEGIN
137 
138     Open cur_rowid;
139     Fetch cur_rowid INTO lv_rowid;
140     IF (cur_rowid%FOUND) THEN
141        Close cur_rowid;
142        Return (TRUE);
143     ELSE
144        Close cur_rowid;
145        Return (FALSE);
146     END IF;
147   END Get_PK_For_Validation;
148 
149   PROCEDURE Before_DML (
150     p_action IN VARCHAR2,
151     x_rowid IN VARCHAR2 DEFAULT NULL,
152     x_govt_attendance_mode IN VARCHAR2 DEFAULT NULL,
153     x_description IN VARCHAR2 DEFAULT NULL,
154     x_closed_ind IN VARCHAR2 DEFAULT NULL,
155     x_creation_date IN DATE DEFAULT NULL,
156     x_created_by IN NUMBER DEFAULT NULL,
157     x_last_update_date IN DATE DEFAULT NULL,
158     x_last_updated_by IN NUMBER DEFAULT NULL,
159     x_last_update_login IN NUMBER DEFAULT NULL
160   ) AS
161   BEGIN
162 
163     Set_Column_Values (
164       p_action,
165       x_rowid,
166       x_govt_attendance_mode,
167       x_description,
168       x_closed_ind,
169       x_creation_date,
170       x_created_by,
171       x_last_update_date,
172       x_last_updated_by,
173       x_last_update_login
174     );
175 
176  IF (p_action = 'INSERT') THEN
177        -- Call all the procedures related to Before Insert.
178       BeforeRowInsertUpdate1 ( p_inserting => TRUE );
179       IF  Get_PK_For_Validation (
180 		    new_references.govt_attendance_mode
181 			) THEN
182          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
183       IGS_GE_MSG_STACK.ADD;
184           App_Exception.Raise_Exception;
185       END IF;
186       Check_Constraints;
187  ELSIF (p_action = 'UPDATE') THEN
188        -- Call all the procedures related to Before Update.
189        BeforeRowInsertUpdate1 ( p_updating => TRUE );
190        Check_Constraints;
191  ELSIF (p_action = 'DELETE') THEN
192        -- Call all the procedures related to Before Delete.
193 
194       Check_Child_Existance;
195  ELSIF (p_action = 'VALIDATE_INSERT') THEN
196       IF  Get_PK_For_Validation (
197 		    new_references.govt_attendance_mode
198 			) THEN
199          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
200       IGS_GE_MSG_STACK.ADD;
201           App_Exception.Raise_Exception;
202       END IF;
203       Check_Constraints;
204  ELSIF (p_action = 'VALIDATE_UPDATE') THEN
205        Check_Constraints;
206 ELSIF (p_action = 'VALIDATE_DELETE') THEN
207       Check_Child_Existance;
208  END IF;
209   END Before_DML;
210 
211   PROCEDURE After_DML (
212     p_action IN VARCHAR2,
213     x_rowid IN VARCHAR2
214   ) AS
215   BEGIN
216 
217     l_rowid := x_rowid;
218 
219 
220   END After_DML;
221 
222 procedure INSERT_ROW (
223   X_ROWID in out NOCOPY VARCHAR2,
224   X_GOVT_ATTENDANCE_MODE 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_MODE
230       where GOVT_ATTENDANCE_MODE = X_GOVT_ATTENDANCE_MODE;
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     app_exception.raise_exception;
251   end if;
252 
253   Before_DML( p_action => 'INSERT',
254     x_rowid => X_ROWID,
255     x_govt_attendance_mode => X_GOVT_ATTENDANCE_MODE,
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_MODE (
268     CREATION_DATE,
265     GOVT_ATTENDANCE_MODE,
266     DESCRIPTION,
267     CLOSED_IND,
269     CREATED_BY,
270     LAST_UPDATE_DATE,
271     LAST_UPDATED_BY,
272     LAST_UPDATE_LOGIN
273   ) values (
274     NEW_REFERENCES.GOVT_ATTENDANCE_MODE,
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_MODE 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_MODE
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_DELETEED');
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_MODE 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     app_exception.raise_exception;
361   end if;
362   Before_DML( p_action => 'UPDATE',
363     x_rowid => X_ROWID,
364     x_govt_attendance_mode => X_GOVT_ATTENDANCE_MODE,
365     x_description => X_DESCRIPTION,
366     x_closed_ind => X_CLOSED_IND,
367     x_creation_date => X_LAST_UPDATE_DATE,
368     x_created_by => X_LAST_UPDATED_BY,
369     x_last_update_date => X_LAST_UPDATE_DATE,
370     x_last_updated_by => X_LAST_UPDATED_BY,
371     x_last_update_login => X_LAST_UPDATE_LOGIN
372   );
373   update IGS_PS_GOVT_ATD_MODE set
374     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
375     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
376     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
377     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
378     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
379   where ROWID = X_ROWID
380   ;
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_MODE 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_MODE
398      where GOVT_ATTENDANCE_MODE = X_GOVT_ATTENDANCE_MODE
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_MODE,
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_MODE,
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_MODE
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_MODE_PKG;