DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_FEE_STR_STAT_PKG

Source


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