DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_GOVT_FUND_SRC_PKG

Source


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