DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_GOVT_HEC_CNTB_PKG

Source


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