DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_GV_TOA_CLS_CD_PKG

Source


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