[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;