[Home] [Help]
PACKAGE BODY: APPS.IGS_FI_FEE_CAT_PKG
Source
1 PACKAGE BODY igs_fi_fee_cat_pkg AS
2 /* $Header: IGSSI23B.pls 115.19 2003/12/05 05:45:48 ckasu ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_FI_FEE_CAT_ALL%RowType;
5 new_references IGS_FI_FEE_CAT_ALL%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 ,
10 x_fee_cat IN VARCHAR2 ,
11 x_description IN VARCHAR2 ,
12 x_currency_cd IN VARCHAR2 ,
13 x_closed_ind IN VARCHAR2 ,
14 x_org_id IN NUMBER ,
15 x_creation_date IN DATE ,
16 x_created_by IN NUMBER ,
17 x_last_update_date IN DATE ,
18 x_last_updated_by IN NUMBER ,
19 x_last_update_login IN NUMBER
20 ) AS
21 CURSOR cur_old_ref_values IS
22 SELECT *
23 FROM IGS_FI_FEE_CAT_ALL
24 WHERE rowid = x_rowid;
25 BEGIN
26 l_rowid := x_rowid;
27 -- Code for setting the Old and New Reference Values.
28 -- Populate Old Values.
29 Open cur_old_ref_values;
30 Fetch cur_old_ref_values INTO old_references;
31 IF (cur_old_ref_values%NOTFOUND) AND (p_action not in ('INSERT', 'VALIDATE_INSERT')) THEN
32 Close cur_old_ref_values;
33 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
34 IGS_GE_MSG_STACK.ADD;
35 App_Exception.Raise_Exception;
36 Return;
37 END IF;
38 Close cur_old_ref_values;
39 -- Populate New Values.
40 new_references.fee_cat := x_fee_cat;
41 new_references.description := x_description;
42 new_references.currency_cd := x_currency_cd;
43 new_references.closed_ind := x_closed_ind;
44 IF (p_action = 'UPDATE') THEN
45 new_references.creation_date := old_references.creation_date;
46 new_references.created_by := old_references.created_by;
47 ELSE
48 new_references.creation_date := x_creation_date;
49 new_references.created_by := x_created_by;
50 END IF;
51 new_references.org_id := x_org_id;
52 new_references.last_update_date := x_last_update_date;
53 new_references.last_updated_by := x_last_updated_by;
54 new_references.last_update_login := x_last_update_login;
55 END Set_Column_Values;
56 -- Trigger description :-
57 -- "OSS_TST".trg_fc_br_iud
58 -- BEFORE INSERT OR DELETE OR UPDATE
59 -- ON IGS_FI_FEE_CAT_ALL
60 -- FOR EACH ROW
61 PROCEDURE BeforeRowInsertUpdateDelete1(
62 p_inserting IN BOOLEAN ,
63 p_updating IN BOOLEAN ,
64 p_deleting IN BOOLEAN
65 ) AS
66 v_message_name varchar2(30);
67 BEGIN
68 -- Validate Fee Category can be closed.
69 IF (p_updating AND (old_references.closed_ind <> new_references.closed_ind)) THEN
70 IF IGS_FI_VAL_FC.finp_val_fc_clsd_upd (
71 new_references.fee_cat,
72 new_references.closed_ind,
73 v_message_name) = FALSE THEN
74 Fnd_Message.Set_Name('IGS',v_message_name);
75 IGS_GE_MSG_STACK.ADD;
76 App_Exception.Raise_Exception;
77 END IF;
78 END IF;
79
80 -- Fee Category records can be deleted logically by making closed_ind as 'Y'
81 -- No physical deletion is allowed. As a part of Bug # 2729919
82 -- Preventing deletion of the Fee Category records.
83 IF p_deleting = TRUE THEN
84 FND_MESSAGE.SET_NAME('IGS','IGS_FI_DEL_NOT_ALLWD');
85 IGS_GE_MSG_STACK.ADD;
86 APP_EXCEPTION.RAISE_EXCEPTION;
87 END IF;
88
89 END BeforeRowInsertUpdateDelete1;
90
91 PROCEDURE Check_Constraints (
92 Column_Name IN VARCHAR2 ,
93 Column_Value IN VARCHAR2
94 )AS
95 /*----------------------------------------------------------------------------
96 || Created By :
97 || Created On :
98 || Purpose :
99 || Known limitations, enhancements or remarks :
100 || Change History :
101 || Who When What
102 || (reverse chronological order - newest change first)
103 || vvutukur 12-May-2002 removed upper check constraint on fee category column.bug#2344826.
104 ----------------------------------------------------------------------------*/
105 BEGIN
106 IF Column_Name is NULL THEN
107 NULL;
108 ELSIF upper(Column_Name) = 'CLOSED_IND' then
109 new_references.closed_ind := Column_Value;
110 ELSIF upper(Column_Name) = 'CURRENCY_CD' then
111 new_references.currency_cd := Column_Value;
112 END IF;
113
114 IF upper(Column_Name) = 'CLOSED_IND' OR
115 column_name is NULL THEN
116 IF new_references.closed_ind <> 'N' AND new_references.closed_ind <> 'Y' THEN
117 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
118 IGS_GE_MSG_STACK.ADD;
119 App_Exception.Raise_Exception;
120 END IF;
121 END IF;
122
123 IF upper(Column_Name) = 'CURRENCY_CD' OR
124 column_name is NULL THEN
125 IF new_references.currency_cd <> UPPER(new_references.currency_cd) 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
132 END Check_Constraints;
133
134
135 PROCEDURE Check_Child_Existance AS
136 ------------------------------------------------------------------
137 --Change History:
138
139 --Who When What
140 --ckasu 04-Dec-2003 Added IGS_EN_SPA_TERMS_PKG.GET_FK_IGS_FI_FEE_CAT
141 -- for Term Records Build Bug# 2829263
142
143 -------------------------------------------------------------------
144
145 BEGIN
146 IGS_AD_PS_APPL_INST_PKG.GET_FK_IGS_FI_FEE_CAT (
147 old_references.fee_cat
148 );
149 IGS_FI_F_CAT_CA_INST_PKG.GET_FK_IGS_FI_FEE_CAT (
150 old_references.fee_cat
151 );
152 IGS_FI_FEE_CAT_MAP_PKG.GET_FK_IGS_FI_FEE_CAT (
153 old_references.fee_cat
154 );
155 IGS_EN_STDNT_PS_ATT_PKG.GET_FK_IGS_FI_FEE_CAT (
156 old_references.fee_cat
157 );
158 IGS_EN_SPA_TERMS_PKG.GET_FK_IGS_FI_FEE_CAT (
159 old_references.fee_cat
160 );
161 END check_child_existance;
162
163
164 FUNCTION Get_PK_For_Validation (
165 x_fee_cat IN VARCHAR2
166 ) RETURN BOOLEAN AS
167 -- Bug# 2729919, removed 'FOR UPDATE NOWAIT' clause is removed from the cursor.
168 CURSOR cur_rowid IS
169 SELECT rowid
170 FROM IGS_FI_FEE_CAT_ALL
171 WHERE fee_cat = x_fee_cat;
172 lv_rowid cur_rowid%RowType;
173 BEGIN
174 Open cur_rowid;
175 Fetch cur_rowid INTO lv_rowid;
176 IF (cur_rowid%FOUND) THEN
177 Close cur_rowid;
178 Return (TRUE);
179 ELSE
180 Close cur_rowid;
181 Return (FALSE);
182 END IF;
183 END Get_PK_For_Validation;
184
185 PROCEDURE Before_DML (
186 p_action IN VARCHAR2,
187 x_rowid IN VARCHAR2 ,
188 x_fee_cat IN VARCHAR2 ,
189 x_description IN VARCHAR2 ,
190 x_currency_cd IN VARCHAR2 ,
191 x_closed_ind IN VARCHAR2 ,
192 x_org_id IN NUMBER ,
193 x_creation_date IN DATE ,
194 x_created_by IN NUMBER ,
195 x_last_update_date IN DATE ,
196 x_last_updated_by IN NUMBER ,
197 x_last_update_login IN NUMBER
198 ) AS
199 ------------------------------------------------------------------
200 --
201 --Known limitations/enhancements and/or remarks:
202 --
203 --Change History:
204 --Who When What
205 --smadathi 06-Nov-2002 Enh. Bug 2584986.Removed refereces to check_parent_existance.
206 -- procedure call.
207 -------------------------------------------------------------------
208 BEGIN
209 Set_Column_Values (
210 p_action,
211 x_rowid,
212 x_fee_cat,
213 x_description,
214 x_currency_cd,
215 x_closed_ind,
216 x_org_id,
217 x_creation_date,
218 x_created_by,
219 x_last_update_date,
220 x_last_updated_by,
221 x_last_update_login
222 );
223 IF (p_action = 'INSERT') THEN
224 -- Call all the procedures related to Before Insert.
225 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE,
226 p_updating => FALSE,
227 p_deleting => FALSE
228 );
229 IF Get_PK_For_Validation ( new_references.fee_cat ) THEN
230 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
231 IGS_GE_MSG_STACK.ADD;
232 App_Exception.Raise_Exception;
233 END IF;
234 Check_Constraints;
235
236 ELSIF (p_action = 'UPDATE') THEN
237 -- Call all the procedures related to Before Update.
238 BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE,
239 p_updating => TRUE,
240 p_deleting => FALSE
241 );
242 Check_Constraints;
243 ELSIF (p_action = 'DELETE') THEN
244 -- Call all the procedures related to Before Delete.
245 BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE,
246 p_updating => FALSE,
247 p_deleting => TRUE
248 );
249 Check_Child_Existance;
250 ELSIF (p_action = 'VALIDATE_INSERT') THEN
251 -- Call all the procedures related to Before Insert.
252 IF Get_PK_For_Validation ( new_references.fee_cat ) THEN
253 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
254 IGS_GE_MSG_STACK.ADD;
255 App_Exception.Raise_Exception;
256 END IF;
257 Check_Constraints;
258 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
259 -- Call all the procedures related to Before UPdate.
260 Check_Constraints;
261 ELSIF (p_action = 'VALIDATE_DELETE') THEN
262 -- Call all the procedures related to Before Delete
263 BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE,
264 p_updating => FALSE,
265 p_deleting => TRUE
266 );
267 Check_Child_Existance;
268 END IF;
269 END Before_DML;
270 procedure INSERT_ROW (
271 X_ROWID in out NOCOPY VARCHAR2,
272 X_FEE_CAT in VARCHAR2,
273 X_DESCRIPTION in VARCHAR2,
274 X_CURRENCY_CD in VARCHAR2,
275 X_CLOSED_IND in VARCHAR2,
276 X_ORG_ID in NUMBER ,
277 X_MODE in VARCHAR2
278 ) AS
279 cursor C is select ROWID from IGS_FI_FEE_CAT_ALL
280 where FEE_CAT = X_FEE_CAT;
281 X_LAST_UPDATE_DATE DATE;
282 X_LAST_UPDATED_BY NUMBER;
283 X_LAST_UPDATE_LOGIN NUMBER;
284 begin
285 X_LAST_UPDATE_DATE := SYSDATE;
286 if(X_MODE = 'I') then
287 X_LAST_UPDATED_BY := 1;
288 X_LAST_UPDATE_LOGIN := 0;
289 elsif (X_MODE = 'R') then
290 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
291 if X_LAST_UPDATED_BY is NULL then
292 X_LAST_UPDATED_BY := -1;
293 end if;
294 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
295 if X_LAST_UPDATE_LOGIN is NULL then
296 X_LAST_UPDATE_LOGIN := -1;
297 end if;
298 else
299 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
300 IGS_GE_MSG_STACK.ADD;
301 app_exception.raise_exception;
302 end if;
303 Before_DML(
304 p_action=>'INSERT',
305 x_rowid=>X_ROWID,
306 x_closed_ind=>NVL(X_CLOSED_IND,'N'),
307 x_currency_cd=>X_CURRENCY_CD,
308 x_description=>X_DESCRIPTION,
309 x_fee_cat=>X_FEE_CAT,
310 x_org_id=>igs_ge_gen_003.get_org_id,
311 x_creation_date=>X_LAST_UPDATE_DATE,
312 x_created_by=>X_LAST_UPDATED_BY,
313 x_last_update_date=>X_LAST_UPDATE_DATE,
314 x_last_updated_by=>X_LAST_UPDATED_BY,
315 x_last_update_login=>X_LAST_UPDATE_LOGIN
316 );
317 insert into IGS_FI_FEE_CAT_ALL (
318 FEE_CAT,
319 DESCRIPTION,
320 CURRENCY_CD,
321 CLOSED_IND,
322 ORG_ID,
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.DESCRIPTION,
331 NEW_REFERENCES.CURRENCY_CD,
332 NEW_REFERENCES.CLOSED_IND,
333 NEW_REFERENCES.ORG_ID,
334 X_LAST_UPDATE_DATE,
335 X_LAST_UPDATED_BY,
336 X_LAST_UPDATE_DATE,
337 X_LAST_UPDATED_BY,
338 X_LAST_UPDATE_LOGIN
339 );
340 open c;
341 fetch c into X_ROWID;
342 if (c%notfound) then
343 close c;
344 raise no_data_found;
345 end if;
346 close c;
347 end INSERT_ROW;
348 procedure LOCK_ROW (
349 X_ROWID in VARCHAR2,
350 X_FEE_CAT in VARCHAR2,
351 X_DESCRIPTION in VARCHAR2,
352 X_CURRENCY_CD in VARCHAR2,
353 X_CLOSED_IND in VARCHAR2
354 ) AS
355 cursor c1 is select
356 DESCRIPTION,
357 CURRENCY_CD,
358 CLOSED_IND
359 from IGS_FI_FEE_CAT_ALL
360 where ROWID = X_ROWID
361 for update nowait;
362 tlinfo c1%rowtype;
363 begin
364 open c1;
365 fetch c1 into tlinfo;
366 if (c1%notfound) then
367 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
368 IGS_GE_MSG_STACK.ADD;
369 app_exception.raise_exception;
370 close c1;
371 return;
372 end if;
373 close c1;
374 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
375 AND ((tlinfo.CURRENCY_CD = X_CURRENCY_CD)
376 OR ((tlinfo.CURRENCY_CD is null)
377 AND (X_CURRENCY_CD is null)))
378 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
379 ) then
380 null;
381 else
382 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
383 IGS_GE_MSG_STACK.ADD;
384 app_exception.raise_exception;
385 end if;
386 return;
387 end LOCK_ROW;
388 procedure UPDATE_ROW (
389 X_ROWID in VARCHAR2,
390 X_FEE_CAT in VARCHAR2,
391 X_DESCRIPTION in VARCHAR2,
392 X_CURRENCY_CD in VARCHAR2,
393 X_CLOSED_IND in VARCHAR2,
394 X_MODE in VARCHAR2
395
396 ) AS
397 X_LAST_UPDATE_DATE DATE;
398 X_LAST_UPDATED_BY NUMBER;
399 X_LAST_UPDATE_LOGIN NUMBER;
400 begin
401 X_LAST_UPDATE_DATE := SYSDATE;
402 if(X_MODE = 'I') then
403 X_LAST_UPDATED_BY := 1;
404 X_LAST_UPDATE_LOGIN := 0;
405 elsif (X_MODE = 'R') then
406 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
407 if X_LAST_UPDATED_BY is NULL then
408 X_LAST_UPDATED_BY := -1;
409 end if;
410 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
411 if X_LAST_UPDATE_LOGIN is NULL then
412 X_LAST_UPDATE_LOGIN := -1;
413 end if;
414 else
415 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
416 IGS_GE_MSG_STACK.ADD;
417 app_exception.raise_exception;
418 end if;
419 Before_DML(
420 p_action=>'UPDATE',
421 x_rowid=>X_ROWID,
422 x_closed_ind=>X_CLOSED_IND,
423 x_currency_cd=>X_CURRENCY_CD,
424 x_description=>X_DESCRIPTION,
425 x_fee_cat=>X_FEE_CAT,
426 x_creation_date=>X_LAST_UPDATE_DATE,
427 x_created_by=>X_LAST_UPDATED_BY,
428 x_last_update_date=>X_LAST_UPDATE_DATE,
429 x_last_updated_by=>X_LAST_UPDATED_BY,
430 x_last_update_login=>X_LAST_UPDATE_LOGIN
431 );
432 update IGS_FI_FEE_CAT_ALL set
433 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
434 CURRENCY_CD = NEW_REFERENCES.CURRENCY_CD,
435 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
436 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
437 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
438 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
439 where ROWID = X_ROWID;
440 if (sql%notfound) then
441 raise no_data_found;
442 end if;
443 end UPDATE_ROW;
444 procedure ADD_ROW (
445 X_ROWID in OUT NOCOPY VARCHAR2,
446 X_FEE_CAT in VARCHAR2,
447 X_DESCRIPTION in VARCHAR2,
448 X_CURRENCY_CD in VARCHAR2,
449 X_CLOSED_IND in VARCHAR2,
450 X_ORG_ID in NUMBER ,
451 X_MODE in VARCHAR2
452
453 ) AS
454 cursor c1 is select rowid from IGS_FI_FEE_CAT_ALL
455 where FEE_CAT = X_FEE_CAT
456 ;
457 begin
458 open c1;
459 fetch c1 into X_ROWID;
460 if (c1%notfound) then
461 close c1;
462 INSERT_ROW (
463 X_ROWID,
464 X_FEE_CAT,
465 X_DESCRIPTION,
466 X_CURRENCY_CD,
467 X_CLOSED_IND,
468 X_ORG_ID,
469 X_MODE
470 );
471 return;
472 end if;
473 close c1;
474 UPDATE_ROW (
475 X_ROWID,
476 X_FEE_CAT,
477 X_DESCRIPTION,
478 X_CURRENCY_CD,
479 X_CLOSED_IND,
480 X_MODE
481 );
482 end ADD_ROW;
483 PROCEDURE DELETE_ROW (
484 X_ROWID in VARCHAR2
485 ) AS
486 begin
487 BEfore_DML (
488 p_action => 'DELETE',
489 x_rowid => X_ROWID
490 );
491 delete from IGS_FI_FEE_CAT_ALL
492 where ROWID = X_ROWID;
493 if (sql%notfound) then
494 raise no_data_found;
495 end if;
496 END delete_row;
497
498 END igs_fi_fee_cat_pkg;