[Home] [Help]
PACKAGE BODY: APPS.IGS_FI_ENCMB_TYPE_PKG
Source
1 package body IGS_FI_ENCMB_TYPE_PKG AS
2 /* $Header: IGSSI17B.pls 115.13 2003/02/19 05:46:10 adhawan ship $ */
3
4
5 /*****************************
6 Removed call to IGS_FI_FEE_ENCMB_PKG.GET_FK_IGS_FI_ENCMB_TYPE as table IGS_FI_FEE_ENCMB is obseleted as part of bug 2126091 -sykrishn -30112001
7 ****************************/
8 l_rowid VARCHAR2(25);
9 old_references IGS_FI_ENCMB_TYPE_ALL%RowType;
10 new_references IGS_FI_ENCMB_TYPE_ALL%RowType;
11 PROCEDURE Set_Column_Values (
12 p_action IN VARCHAR2,
13 x_rowid IN VARCHAR2 DEFAULT NULL,
14 x_encumbrance_type IN VARCHAR2 DEFAULT NULL,
15 x_description IN VARCHAR2 DEFAULT NULL,
16 x_s_encumbrance_cat IN VARCHAR2 DEFAULT NULL,
17 x_closed_ind IN VARCHAR2 DEFAULT NULL,
18 x_comments IN VARCHAR2 DEFAULT NULL,
19 x_org_id IN NUMBER DEFAULT NULL,
20 x_creation_date IN DATE DEFAULT NULL,
21 x_created_by IN NUMBER DEFAULT NULL,
22 x_last_update_date IN DATE DEFAULT NULL,
23 x_last_updated_by IN NUMBER DEFAULT NULL,
24 x_last_update_login IN NUMBER DEFAULT NULL
25 ) AS
26 CURSOR cur_old_ref_values IS
27 SELECT *
28 FROM IGS_FI_ENCMB_TYPE_ALL
29 WHERE rowid = x_rowid;
30 BEGIN
31 l_rowid := x_rowid;
32 -- Code for setting the Old and New Reference Values.
33 -- Populate Old Values.
34 Open cur_old_ref_values;
35 Fetch cur_old_ref_values INTO old_references;
36 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
37 Close cur_old_ref_values;
38 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
39 IGS_GE_MSG_STACK.ADD;
40 App_Exception.Raise_Exception;
41 Return;
42 END IF;
43 Close cur_old_ref_values;
44 -- Populate New Values.
45 new_references.encumbrance_type := x_encumbrance_type;
46 new_references.description := x_description;
47 new_references.s_encumbrance_cat := x_s_encumbrance_cat;
48 new_references.closed_ind := x_closed_ind;
49 new_references.comments := x_comments;
50 new_references.org_id := x_org_id;
51 IF (p_action = 'UPDATE') THEN
52 new_references.creation_date := old_references.creation_date;
53 new_references.created_by := old_references.created_by;
54 ELSE
55 new_references.creation_date := x_creation_date;
56 new_references.created_by := x_created_by;
57 END IF;
58 new_references.last_update_date := x_last_update_date;
59 new_references.last_updated_by := x_last_updated_by;
60 new_references.last_update_login := x_last_update_login;
61 END Set_Column_Values;
62 PROCEDURE Check_Constraints (
63 Column_Name IN VARCHAR2 DEFAULT NULL,
64 Column_Value IN VARCHAR2 DEFAULT NULL
65 )
66 AS
67 BEGIN
68 IF column_name is null then
69 NULL;
70 ELSIF upper(Column_name) = 'CLOSED_IND' then
71 new_references.closed_ind := column_value;
72 ELSIF upper(Column_name) = 'ENCUMBRANCE_TYPE' then
73 new_references.encumbrance_type := column_value;
74 ELSIF upper(Column_name) = 'S_ENCUMBRANCE_CAT' then
75 new_references.s_encumbrance_cat := column_value;
76 End if;
77
78 IF upper(column_name) = 'CLOSED_IND' OR
79 column_name is null Then
80 IF new_references.CLOSED_IND <>
81 UPPER(new_references.CLOSED_IND) Then
82 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
83 IGS_GE_MSG_STACK.ADD;
84 App_Exception.Raise_Exception;
85 END IF;
86 END IF;
87
88 IF upper(column_name) = 'ENCUMBRANCE_TYPE' OR
89 column_name is null Then
90 IF new_references.ENCUMBRANCE_TYPE <>
91 UPPER(new_references.ENCUMBRANCE_TYPE) Then
92 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
93 IGS_GE_MSG_STACK.ADD;
94 App_Exception.Raise_Exception;
95 END IF;
96 END IF;
97
98 IF upper(column_name) = 'S_ENCUMBRANCE_CAT' OR
99 column_name is null Then
100 IF new_references.S_ENCUMBRANCE_CAT <>
101 UPPER(new_references.S_ENCUMBRANCE_CAT) Then
102 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
103 IGS_GE_MSG_STACK.ADD;
104 App_Exception.Raise_Exception;
105 END IF;
106 END IF;
107
108 IF upper(column_name) = 'S_ENCUMBRANCE_CAT' OR
109 column_name is null Then
110 IF (new_references.s_encumbrance_cat not in ( 'ACADEMIC' , 'ADMIN')) Then
111 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
112 IGS_GE_MSG_STACK.ADD;
113 App_Exception.Raise_Exception;
114 END IF;
115 END IF;
116
117 IF upper(column_name) = 'CLOSED_IND' OR
118 column_name is null Then
119 IF (new_references.closed_ind not in ('Y', 'N')) Then
120 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
121 IGS_GE_MSG_STACK.ADD;
122 App_Exception.Raise_Exception;
123 END IF;
124 END IF;
125 END Check_Constraints;
126 Function Get_PK_For_Validation (
127 x_encumbrance_type IN VARCHAR2
128 ) Return Boolean
129 AS
130 CURSOR cur_rowid IS
131 SELECT rowid
132 FROM IGS_FI_ENCMB_TYPE_ALL
133 WHERE encumbrance_type = x_encumbrance_type;
134
135 lv_rowid cur_rowid%RowType;
136 BEGIN
137 Open cur_rowid;
138 Fetch cur_rowid INTO lv_rowid;
139 IF (cur_rowid%FOUND) THEN
140 Close cur_rowid;
141 Return (TRUE);
142 ELSE
143 Close cur_rowid;
144 Return (FALSE);
145 END IF;
146
147 END Get_PK_For_Validation;
148
149 PROCEDURE Before_DML (
150 p_action IN VARCHAR2,
151 x_rowid IN VARCHAR2 DEFAULT NULL,
152 x_encumbrance_type IN VARCHAR2 DEFAULT NULL,
153 x_description IN VARCHAR2 DEFAULT NULL,
154 x_s_encumbrance_cat IN VARCHAR2 DEFAULT NULL,
155 x_closed_ind IN VARCHAR2 DEFAULT NULL,
156 x_comments IN VARCHAR2 DEFAULT NULL,
157 x_org_id IN NUMBER DEFAULT NULL,
158 x_creation_date IN DATE DEFAULT NULL,
159 x_created_by IN NUMBER DEFAULT NULL,
160 x_last_update_date IN DATE DEFAULT NULL,
161 x_last_updated_by IN NUMBER DEFAULT NULL,
162 x_last_update_login IN NUMBER DEFAULT NULL
163 ) AS
164 BEGIN
165 Set_Column_Values (
166 p_action,
167 x_rowid,
168 x_encumbrance_type,
169 x_description,
170 x_s_encumbrance_cat,
171 x_closed_ind,
172 x_comments,
173 x_org_id,
174 x_creation_date,
175 x_created_by,
176 x_last_update_date,
177 x_last_updated_by,
178 x_last_update_login
179 );
180 IF (p_action = 'INSERT') THEN
181 -- Call all the procedures related to Before Insert.
182 Null;
183 IF Get_PK_For_Validation (
184 new_references.encumbrance_type
185 ) THEN
186 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
187 IGS_GE_MSG_STACK.ADD;
188 App_Exception.Raise_Exception;
189 END IF;
190 Check_Constraints;
191 ELSIF (p_action = 'UPDATE') THEN
192 -- Call all the procedures related to Before Update.
193 Null;
194 Check_Constraints;
195 ELSIF (p_action = 'VALIDATE_INSERT') THEN
196 IF Get_PK_For_Validation (
197 new_references.encumbrance_type
198 ) THEN
199 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
200 IGS_GE_MSG_STACK.ADD;
201 App_Exception.Raise_Exception;
202 END IF;
203 Check_Constraints;
204 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
205 Check_Constraints;
206 END IF;
207 END Before_DML;
208 procedure INSERT_ROW (
209 X_ROWID in out NOCOPY VARCHAR2,
210 X_ENCUMBRANCE_TYPE in VARCHAR2,
211 X_DESCRIPTION in VARCHAR2,
212 X_S_ENCUMBRANCE_CAT in VARCHAR2,
213 X_CLOSED_IND in VARCHAR2,
214 X_COMMENTS in VARCHAR2,
215 x_org_id in number,
216 X_MODE in VARCHAR2 default 'R'
217 ) AS
218 cursor C is select ROWID from IGS_FI_ENCMB_TYPE_ALL
219 where ENCUMBRANCE_TYPE = X_ENCUMBRANCE_TYPE;
220 X_LAST_UPDATE_DATE DATE;
221 X_LAST_UPDATED_BY NUMBER;
222 X_LAST_UPDATE_LOGIN NUMBER;
223 begin
224 X_LAST_UPDATE_DATE := SYSDATE;
225 if(X_MODE = 'I') then
226 X_LAST_UPDATED_BY := 1;
227 X_LAST_UPDATE_LOGIN := 0;
228 elsif (X_MODE = 'R') then
229 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
230 if X_LAST_UPDATED_BY is NULL then
231 X_LAST_UPDATED_BY := -1;
232 end if;
233 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
234 if X_LAST_UPDATE_LOGIN is NULL then
235 X_LAST_UPDATE_LOGIN := -1;
236 end if;
237 else
238 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
239 IGS_GE_MSG_STACK.ADD;
240 app_exception.raise_exception;
241 end if;
242 Before_DML (
243 p_action => 'INSERT',
244 x_rowid => X_ROWID,
245 x_encumbrance_type => x_encumbrance_type,
246 x_description => x_description ,
247 x_s_encumbrance_cat => x_s_encumbrance_cat,
248 x_closed_ind => NVL(x_closed_ind,'N'),
249 x_comments => x_comments,
250 x_org_id => igs_ge_gen_003.get_org_id,
251 x_creation_date => X_LAST_UPDATE_DATE,
252 x_created_by => X_LAST_UPDATED_BY,
253 x_last_update_date => X_LAST_UPDATE_DATE,
254 x_last_updated_by => X_LAST_UPDATED_BY,
255 x_last_update_login => X_LAST_UPDATE_LOGIN
256 );
257 insert into IGS_FI_ENCMB_TYPE_ALL (
258 ENCUMBRANCE_TYPE,
259 DESCRIPTION,
260 S_ENCUMBRANCE_CAT,
261 CLOSED_IND,
262 COMMENTS,
263 ORG_ID,
264 CREATION_DATE,
265 CREATED_BY,
266 LAST_UPDATE_DATE,
267 LAST_UPDATED_BY,
268 LAST_UPDATE_LOGIN
269 ) values (
270 NEW_REFERENCES.ENCUMBRANCE_TYPE,
271 NEW_REFERENCES.DESCRIPTION,
272 NEW_REFERENCES.S_ENCUMBRANCE_CAT,
273 NEW_REFERENCES.CLOSED_IND,
274 NEW_REFERENCES.COMMENTS,
275 NEW_REFERENCES.ORG_ID,
276 X_LAST_UPDATE_DATE,
277 X_LAST_UPDATED_BY,
278 X_LAST_UPDATE_DATE,
279 X_LAST_UPDATED_BY,
280 X_LAST_UPDATE_LOGIN
281 );
282 open c;
283 fetch c into X_ROWID;
284 if (c%notfound) then
285 close c;
286 raise no_data_found;
287 end if;
288 close c;
289 end INSERT_ROW;
290 procedure LOCK_ROW (
291 X_ROWID in VARCHAR2,
292 X_ENCUMBRANCE_TYPE in VARCHAR2,
293 X_DESCRIPTION in VARCHAR2,
294 X_S_ENCUMBRANCE_CAT in VARCHAR2,
295 X_CLOSED_IND in VARCHAR2,
296 X_COMMENTS in VARCHAR2
297 ) AS
298 cursor c1 is select
299 DESCRIPTION,
300 S_ENCUMBRANCE_CAT,
301 CLOSED_IND,
302 COMMENTS
303 from IGS_FI_ENCMB_TYPE_ALL
304 where ROWID = X_ROWID
305 for update nowait;
306 tlinfo c1%rowtype;
307 begin
308 open c1;
309 fetch c1 into tlinfo;
310 if (c1%notfound) then
311 close c1;
312 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
313 IGS_GE_MSG_STACK.ADD;
314 app_exception.raise_exception;
315 return;
316 end if;
317 close c1;
318 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
319 AND (tlinfo.S_ENCUMBRANCE_CAT = X_S_ENCUMBRANCE_CAT)
320 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
321 AND ((tlinfo.COMMENTS = X_COMMENTS)
322 OR ((tlinfo.COMMENTS is null)
323 AND (X_COMMENTS is null)))
324 ) then
325 null;
326 else
327 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
328 IGS_GE_MSG_STACK.ADD;
329 app_exception.raise_exception;
330 end if;
331 return;
332 end LOCK_ROW;
333 procedure UPDATE_ROW (
334 X_ROWID in VARCHAR2,
335 X_ENCUMBRANCE_TYPE in VARCHAR2,
336 X_DESCRIPTION in VARCHAR2,
337 X_S_ENCUMBRANCE_CAT in VARCHAR2,
338 X_CLOSED_IND in VARCHAR2,
339 X_COMMENTS in VARCHAR2,
340 X_MODE in VARCHAR2 default 'R'
341 ) AS
342 X_LAST_UPDATE_DATE DATE;
343 X_LAST_UPDATED_BY NUMBER;
344 X_LAST_UPDATE_LOGIN NUMBER;
345 begin
346 X_LAST_UPDATE_DATE := SYSDATE;
347 if(X_MODE = 'I') then
348 X_LAST_UPDATED_BY := 1;
349 X_LAST_UPDATE_LOGIN := 0;
350 elsif (X_MODE = 'R') then
351 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
352 if X_LAST_UPDATED_BY is NULL then
353 X_LAST_UPDATED_BY := -1;
354 end if;
355 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
356 if X_LAST_UPDATE_LOGIN is NULL then
357 X_LAST_UPDATE_LOGIN := -1;
358 end if;
359 else
360 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
361 IGS_GE_MSG_STACK.ADD;
362 app_exception.raise_exception;
363 end if;
364 Before_DML (
365 p_action => 'UPDATE',
366 x_rowid => X_ROWID,
367 x_encumbrance_type => x_encumbrance_type,
368 x_description => x_description ,
369 x_s_encumbrance_cat => x_s_encumbrance_cat,
370 x_closed_ind => x_closed_ind,
371 x_comments => x_comments,
372 x_creation_date => X_LAST_UPDATE_DATE,
373 x_created_by => X_LAST_UPDATED_BY,
374 x_last_update_date => X_LAST_UPDATE_DATE,
375 x_last_updated_by => X_LAST_UPDATED_BY,
376 x_last_update_login => X_LAST_UPDATE_LOGIN
377 );
378 update IGS_FI_ENCMB_TYPE_ALL set
379 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
380 S_ENCUMBRANCE_CAT = NEW_REFERENCES.S_ENCUMBRANCE_CAT,
381 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
382 COMMENTS = NEW_REFERENCES.COMMENTS,
383 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
384 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
385 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
386 where ROWID = X_ROWID;
387 if (sql%notfound) then
388 raise no_data_found;
389 end if;
390 end UPDATE_ROW;
391 procedure ADD_ROW (
392 X_ROWID in out NOCOPY VARCHAR2,
393 X_ENCUMBRANCE_TYPE in VARCHAR2,
394 X_DESCRIPTION in VARCHAR2,
395 X_S_ENCUMBRANCE_CAT in VARCHAR2,
396 X_CLOSED_IND in VARCHAR2,
397 X_COMMENTS in VARCHAR2,
398 X_ORG_ID in NUMBER,
399 X_MODE in VARCHAR2 default 'R'
400 ) AS
401 cursor c1 is select rowid from IGS_FI_ENCMB_TYPE_ALL
402 where ENCUMBRANCE_TYPE = X_ENCUMBRANCE_TYPE
403 ;
404 begin
405 open c1;
406 fetch c1 into X_ROWID;
407 if (c1%notfound) then
408 close c1;
409 INSERT_ROW (
410 X_ROWID,
411 X_ENCUMBRANCE_TYPE,
412 X_DESCRIPTION,
413 X_S_ENCUMBRANCE_CAT,
414 X_CLOSED_IND,
415 X_COMMENTS,
416 X_ORG_ID,
417 X_MODE);
418 return;
419 end if;
420 close c1;
421 UPDATE_ROW (
422 X_ROWID,
423 X_ENCUMBRANCE_TYPE,
424 X_DESCRIPTION,
425 X_S_ENCUMBRANCE_CAT,
426 X_CLOSED_IND,
427 X_COMMENTS,
428 X_MODE);
429 end ADD_ROW;
430
431 end IGS_FI_ENCMB_TYPE_PKG;