DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_GOV_BAS_FR_TY_PKG

Source


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