[Home] [Help]
PACKAGE BODY: APPS.IGS_FI_FEE_CAT_MAP_PKG
Source
1 package body IGS_FI_FEE_CAT_MAP_PKG AS
2 /* $Header: IGSSI25B.pls 115.6 2003/10/30 13:31:57 rghosh ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_FI_FEE_CAT_MAP%RowType;
5 new_references IGS_FI_FEE_CAT_MAP%RowType;
6 PROCEDURE Set_Column_Values (
7 p_action IN VARCHAR2,
8 x_rowid IN VARCHAR2 DEFAULT NULL,
9 x_fee_cat IN VARCHAR2 DEFAULT NULL,
10 x_admission_cat IN VARCHAR2 DEFAULT NULL,
11 x_dflt_cat_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_FEE_CAT_MAP
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.fee_cat := x_fee_cat;
38 new_references.admission_cat := x_admission_cat;
39 new_references.dflt_cat_ind := x_dflt_cat_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 -- "OSS_TST".trg_fcm_br_iud
53 -- BEFORE INSERT OR DELETE OR UPDATE
54 -- ON IGS_FI_FEE_CAT_MAP
55 -- FOR EACH ROW
56 PROCEDURE BeforeRowInsertUpdateDelete1(
57 p_inserting IN BOOLEAN DEFAULT FALSE,
58 p_updating IN BOOLEAN DEFAULT FALSE,
59 p_deleting IN BOOLEAN DEFAULT FALSE
60 ) AS
61 v_admission_cat IGS_FI_FEE_CAT_MAP.admission_cat%TYPE;
62 v_message_name varchar2(30);
63 BEGIN
64 IF p_inserting THEN
65 -- Validate the fee category closed indicator.
66 IF IGS_AD_VAL_FCM.finp_val_fc_closed (
67 new_references.fee_cat,
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 -- Set the Admission Category value.
75 IF p_deleting THEN
76 v_admission_cat := old_references.admission_cat;
77 ELSE
78 v_admission_cat := new_references.admission_cat;
79 END IF;
80 -- Validate the admission category closed indicator.
81 IF IGS_AD_VAL_ACCT.admp_val_ac_closed (
82 v_admission_cat,
83 v_message_name) = FALSE THEN
84 Fnd_Message.Set_Name('IGS',v_message_name);
85 IGS_GE_MSG_STACK.ADD;
86 App_Exception.Raise_Exception;
87 END IF;
88 END BeforeRowInsertUpdateDelete1;
89
90
91
92 PROCEDURE Check_Constraints (
93 Column_Name IN VARCHAR2 DEFAULT NULL,
94 Column_Value IN VARCHAR2 DEFAULT NULL
95 )AS
96 /*----------------------------------------------------------------------------
97 || Created By :
98 || Created On :
99 || Purpose :
100 || Known limitations, enhancements or remarks :
101 || Change History :
102 || Who When What
103 || (reverse chronological order - newest change first)
104 || vvutukur 17-May-2002 removed upper check constraint on fee_cat column.bug#2344826.
105 ----------------------------------------------------------------------------*/
106 BEGIN
107 IF Column_Name is NULL THEN
108 NULL;
109 ELSIF upper(Column_Name) = 'ADMISSION_CAT' then
110 new_references.admission_cat := Column_Value;
111 ELSIF upper(Column_Name) = 'DFLT_CAT_IND' then
112 new_references.dflt_cat_ind := Column_Value;
113 END IF;
114
115 IF upper(Column_Name) = 'ADMISSION_CAT' OR
116 column_name is NULL THEN
117 IF new_references.admission_cat <> UPPER(new_references.admission_cat) THEN
118 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
119 IGS_GE_MSG_STACK.ADD;
120 App_Exception.Raise_Exception;
121 END IF;
122 END IF;
123 IF upper(Column_Name) = 'DFLT_CAT_IND' OR
124 column_name is NULL THEN
125 IF new_references.dflt_cat_ind <> 'Y' AND new_references.dflt_cat_ind <> 'N' THEN
126 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
127 IGS_GE_MSG_STACK.ADD;
128 App_Exception.Raise_Exception;
129 END IF;
130 END IF;
131 END Check_Constraints;
132
133 PROCEDURE Check_Parent_Existance AS
134 BEGIN
135 IF (((old_references.admission_cat = new_references.admission_cat)) OR
136 ((new_references.admission_cat IS NULL))) THEN
137 NULL;
138 ELSIF NOT IGS_AD_CAT_PKG.Get_PK_For_Validation ( new_references.admission_cat, 'N' ) THEN
139 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
140 IGS_GE_MSG_STACK.ADD;
141 App_Exception.Raise_Exception;
142 END IF;
143 IF (((old_references.fee_cat = new_references.fee_cat)) OR
144 ((new_references.fee_cat IS NULL))) THEN
145 NULL;
146 ELSIF NOT IGS_FI_FEE_CAT_PKG.Get_PK_For_Validation (new_references.fee_cat ) THEN
147 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
148 IGS_GE_MSG_STACK.ADD;
149 App_Exception.Raise_Exception;
150 END IF;
151 END Check_Parent_Existance;
152
153 FUNCTION Get_PK_For_Validation (
154 x_fee_cat IN VARCHAR2,
155 x_admission_cat IN VARCHAR2
156 ) RETURN BOOLEAN AS
157 CURSOR cur_rowid IS
158 SELECT rowid
159 FROM IGS_FI_FEE_CAT_MAP
160 WHERE fee_cat = x_fee_cat
161 AND admission_cat = x_admission_cat
162 FOR UPDATE NOWAIT;
163 lv_rowid cur_rowid%RowType;
164 BEGIN
165 Open cur_rowid;
166 Fetch cur_rowid INTO lv_rowid;
167 IF (cur_rowid%FOUND) THEN
168 Close cur_rowid;
169 Return (TRUE);
170 ELSE
171 Close cur_rowid;
172 Return (FALSE);
173 END IF;
174 END Get_PK_For_Validation;
175
176 PROCEDURE GET_FK_IGS_AD_CAT (
177 x_admission_cat IN VARCHAR2
178 ) AS
179 CURSOR cur_rowid IS
180 SELECT rowid
181 FROM IGS_FI_FEE_CAT_MAP
182 WHERE admission_cat = x_admission_cat ;
183 lv_rowid cur_rowid%RowType;
184 BEGIN
185 Open cur_rowid;
186 Fetch cur_rowid INTO lv_rowid;
187 IF (cur_rowid%FOUND) THEN
188 Close cur_rowid;
189 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCM_AC_FK');
190 IGS_GE_MSG_STACK.ADD;
191 App_Exception.Raise_Exception;
192 Return;
193 END IF;
194 Close cur_rowid;
195 END GET_FK_IGS_AD_CAT;
196 PROCEDURE GET_FK_IGS_FI_FEE_CAT (
197 x_fee_cat IN VARCHAR2
198 ) AS
199 CURSOR cur_rowid IS
200 SELECT rowid
201 FROM IGS_FI_FEE_CAT_MAP
202 WHERE fee_cat = x_fee_cat ;
203 lv_rowid cur_rowid%RowType;
204 BEGIN
205 Open cur_rowid;
206 Fetch cur_rowid INTO lv_rowid;
207 IF (cur_rowid%FOUND) THEN
208 Close cur_rowid;
209 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCM_FC_FK');
210 IGS_GE_MSG_STACK.ADD;
211 App_Exception.Raise_Exception;
212 Return;
213 END IF;
214 Close cur_rowid;
215 END GET_FK_IGS_FI_FEE_CAT;
216 PROCEDURE Before_DML (
217 p_action IN VARCHAR2,
218 x_rowid IN VARCHAR2 DEFAULT NULL,
219 x_fee_cat IN VARCHAR2 DEFAULT NULL,
220 x_admission_cat IN VARCHAR2 DEFAULT NULL,
221 x_dflt_cat_ind IN VARCHAR2 DEFAULT NULL,
222 x_creation_date IN DATE DEFAULT NULL,
223 x_created_by IN NUMBER DEFAULT NULL,
224 x_last_update_date IN DATE DEFAULT NULL,
225 x_last_updated_by IN NUMBER DEFAULT NULL,
226 x_last_update_login IN NUMBER DEFAULT NULL
227 ) AS
228 BEGIN
229 Set_Column_Values (
230 p_action,
231 x_rowid,
232 x_fee_cat,
233 x_admission_cat,
234 x_dflt_cat_ind,
235 x_creation_date,
236 x_created_by,
237 x_last_update_date,
238 x_last_updated_by,
239 x_last_update_login
240 );
241 IF (p_action = 'INSERT') THEN
242 -- Call all the procedures related to Before Insert.
243 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
244 IF Get_PK_For_Validation ( new_references.fee_cat,
245 new_references.admission_cat )
246 THEN
247 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
248 IGS_GE_MSG_STACK.ADD;
249 App_Exception.Raise_Exception;
250 END IF;
251 Check_Constraints;
252 Check_Parent_Existance;
253 ELSIF (p_action = 'UPDATE') THEN
254 -- Call all the procedures related to Before Update.
255 BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
256 Check_Constraints;
257 Check_Parent_Existance;
258 ELSIF (p_action = 'DELETE') THEN
259 -- Call all the procedures related to Before Delete.
260 BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
261 ELSIF (p_action = 'VALIDATE_INSERT') THEN
262 -- Call all the procedures related to Before Insert.
263 IF Get_PK_For_Validation ( new_references.fee_cat,
264 new_references.admission_cat )
265 THEN
266 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
267 IGS_GE_MSG_STACK.ADD;
268 App_Exception.Raise_Exception;
269 END IF;
270 Check_Constraints;
271 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
272 Check_Constraints;
273 END IF;
274 END Before_DML;
275 procedure INSERT_ROW (
276 X_ROWID in out NOCOPY VARCHAR2,
277 X_FEE_CAT in VARCHAR2,
278 X_ADMISSION_CAT in VARCHAR2,
279 X_DFLT_CAT_IND in VARCHAR2,
280 X_MODE in VARCHAR2 default 'R'
281 ) AS
282 cursor C is select ROWID from IGS_FI_FEE_CAT_MAP
283 where FEE_CAT = X_FEE_CAT
284 and ADMISSION_CAT = X_ADMISSION_CAT;
285 X_LAST_UPDATE_DATE DATE;
286 X_LAST_UPDATED_BY NUMBER;
287 X_LAST_UPDATE_LOGIN NUMBER;
288 begin
289 X_LAST_UPDATE_DATE := SYSDATE;
290 if(X_MODE = 'I') then
291 X_LAST_UPDATED_BY := 1;
292 X_LAST_UPDATE_LOGIN := 0;
293 elsif (X_MODE = 'R') then
294 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
295 if X_LAST_UPDATED_BY is NULL then
296 X_LAST_UPDATED_BY := -1;
297 end if;
298 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
299 if X_LAST_UPDATE_LOGIN is NULL then
300 X_LAST_UPDATE_LOGIN := -1;
301 end if;
302 else
303 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
304 IGS_GE_MSG_STACK.ADD;
305 app_exception.raise_exception;
306 end if;
307 Before_DML(
308 p_action=>'INSERT',
309 x_rowid=>X_ROWID,
310 x_admission_cat=>X_ADMISSION_CAT,
311 x_dflt_cat_ind=>NVL(X_DFLT_CAT_IND,'N'),
312 x_fee_cat=>X_FEE_CAT,
313 x_creation_date=>X_LAST_UPDATE_DATE,
314 x_created_by=>X_LAST_UPDATED_BY,
315 x_last_update_date=>X_LAST_UPDATE_DATE,
316 x_last_updated_by=>X_LAST_UPDATED_BY,
317 x_last_update_login=>X_LAST_UPDATE_LOGIN
318 );
319 insert into IGS_FI_FEE_CAT_MAP (
320 FEE_CAT,
321 ADMISSION_CAT,
322 DFLT_CAT_IND,
323 CREATION_DATE,
324 CREATED_BY,
325 LAST_UPDATE_DATE,
326 LAST_UPDATED_BY,
327 LAST_UPDATE_LOGIN
328 ) values (
329 NEW_REFERENCES.FEE_CAT,
330 NEW_REFERENCES.ADMISSION_CAT,
331 NEW_REFERENCES.DFLT_CAT_IND,
332 X_LAST_UPDATE_DATE,
333 X_LAST_UPDATED_BY,
334 X_LAST_UPDATE_DATE,
335 X_LAST_UPDATED_BY,
336 X_LAST_UPDATE_LOGIN
337 );
338 open c;
339 fetch c into X_ROWID;
340 if (c%notfound) then
341 close c;
342 raise no_data_found;
343 end if;
344 close c;
345 end INSERT_ROW;
346 procedure LOCK_ROW (
347 X_ROWID in VARCHAR2,
348 X_FEE_CAT in VARCHAR2,
349 X_ADMISSION_CAT in VARCHAR2,
350 X_DFLT_CAT_IND in VARCHAR2
351 ) AS
352 cursor c1 is select
353 DFLT_CAT_IND
354 from IGS_FI_FEE_CAT_MAP
355 where ROWID = X_ROWID
356 for update nowait;
357 tlinfo c1%rowtype;
358 begin
359 open c1;
360 fetch c1 into tlinfo;
361 if (c1%notfound) then
362 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
363 IGS_GE_MSG_STACK.ADD;
364 app_exception.raise_exception;
365 close c1;
366 return;
367 end if;
368 close c1;
369 if ( (tlinfo.DFLT_CAT_IND = X_DFLT_CAT_IND)
370 ) then
371 null;
372 else
373 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
374 IGS_GE_MSG_STACK.ADD;
375 app_exception.raise_exception;
376 end if;
377 return;
378 end LOCK_ROW;
379 procedure UPDATE_ROW (
380 X_ROWID in VARCHAR2,
381 X_FEE_CAT in VARCHAR2,
382 X_ADMISSION_CAT in VARCHAR2,
383 X_DFLT_CAT_IND in VARCHAR2,
384 X_MODE in VARCHAR2 default 'R'
385 ) AS
386 X_LAST_UPDATE_DATE DATE;
387 X_LAST_UPDATED_BY NUMBER;
388 X_LAST_UPDATE_LOGIN NUMBER;
389 begin
390 X_LAST_UPDATE_DATE := SYSDATE;
391 if(X_MODE = 'I') then
392 X_LAST_UPDATED_BY := 1;
393 X_LAST_UPDATE_LOGIN := 0;
394 elsif (X_MODE = 'R') then
395 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
396 if X_LAST_UPDATED_BY is NULL then
397 X_LAST_UPDATED_BY := -1;
398 end if;
399 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
400 if X_LAST_UPDATE_LOGIN is NULL then
401 X_LAST_UPDATE_LOGIN := -1;
402 end if;
403 else
404 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
405 IGS_GE_MSG_STACK.ADD;
406 app_exception.raise_exception;
407 end if;
408 Before_DML(
409 p_action=>'UPDATE',
410 x_rowid=>X_ROWID,
411 x_admission_cat=>X_ADMISSION_CAT,
412 x_dflt_cat_ind=>X_DFLT_CAT_IND,
413 x_fee_cat=>X_FEE_CAT,
414 x_creation_date=>X_LAST_UPDATE_DATE,
415 x_created_by=>X_LAST_UPDATED_BY,
416 x_last_update_date=>X_LAST_UPDATE_DATE,
417 x_last_updated_by=>X_LAST_UPDATED_BY,
418 x_last_update_login=>X_LAST_UPDATE_LOGIN
419 );
420 update IGS_FI_FEE_CAT_MAP set
421 DFLT_CAT_IND = NEW_REFERENCES.DFLT_CAT_IND,
422 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
423 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
424 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
425 where ROWID = X_ROWID;
426 if (sql%notfound) then
427 raise no_data_found;
428 end if;
429 end UPDATE_ROW;
430 procedure ADD_ROW (
431 X_ROWID in out NOCOPY VARCHAR2,
432 X_FEE_CAT in VARCHAR2,
433 X_ADMISSION_CAT in VARCHAR2,
434 X_DFLT_CAT_IND in VARCHAR2,
435 X_MODE in VARCHAR2 default 'R'
436 ) AS
437 cursor c1 is select rowid from IGS_FI_FEE_CAT_MAP
438 where FEE_CAT = X_FEE_CAT
439 and ADMISSION_CAT = X_ADMISSION_CAT
440 ;
441 begin
442 open c1;
443 fetch c1 into X_ROWID;
444 if (c1%notfound) then
445 close c1;
446 INSERT_ROW (
447 X_ROWID,
448 X_FEE_CAT,
449 X_ADMISSION_CAT,
450 X_DFLT_CAT_IND,
451 X_MODE);
452 return;
453 end if;
454 close c1;
455 UPDATE_ROW (
456 X_ROWID,
457 X_FEE_CAT,
458 X_ADMISSION_CAT,
459 X_DFLT_CAT_IND,
460 X_MODE);
461 end ADD_ROW;
462 procedure DELETE_ROW (
463 X_ROWID in VARCHAR2
464 ) AS
465 begin
466 Before_DML (
467 p_action => 'DELETE',
468 x_rowid => X_ROWID
469 );
470 delete from IGS_FI_FEE_CAT_MAP
471 where ROWID = X_ROWID;
472 if (sql%notfound) then
473 raise no_data_found;
474 end if;
475 end DELETE_ROW;
476 end IGS_FI_FEE_CAT_MAP_PKG;