[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_CAT_PKG
Source
1 package body IGS_AD_CAT_PKG As
2 /* $Header: IGSAI07B.pls 115.11 2003/10/30 13:10:10 akadam ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_AD_CAT_ALL%RowType;
6 new_references IGS_AD_CAT_ALL%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_org_id IN NUMBER DEFAULT NULL,
12 x_admission_cat IN VARCHAR2 DEFAULT NULL,
13 x_description IN VARCHAR2 DEFAULT NULL,
14 x_closed_ind IN VARCHAR2 DEFAULT NULL,
15 x_s_citizenship_type IN VARCHAR2 DEFAULT NULL,
16 x_creation_date IN DATE DEFAULT NULL,
17 x_created_by IN NUMBER DEFAULT NULL,
18 x_last_update_date IN DATE DEFAULT NULL,
19 x_last_updated_by IN NUMBER DEFAULT NULL,
20 x_last_update_login IN NUMBER DEFAULT NULL
21 ) AS
22
23 CURSOR cur_old_ref_values IS
24 SELECT *
25 FROM IGS_AD_CAT_ALL
26 WHERE rowid = x_rowid;
27
28 BEGIN
29
30 l_rowid := x_rowid;
31
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
45 -- Populate New Values.
46 new_references.org_id := x_org_id;
47 new_references.admission_cat := x_admission_cat;
48 new_references.description := x_description;
49 new_references.closed_ind := x_closed_ind;
50 new_references.s_citizenship_type := x_s_citizenship_type;
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
62 END Set_Column_Values;
63
64 PROCEDURE BeforeRowInsertUpdate1(
65 p_inserting IN BOOLEAN DEFAULT FALSE,
66 p_updating IN BOOLEAN DEFAULT FALSE,
67 p_deleting IN BOOLEAN DEFAULT FALSE
68 ) AS
69 v_message_name VARCHAR2(30);
70 BEGIN
71 -- Validate the update.
72 IF old_references.s_citizenship_type <> new_references.s_citizenship_type THEN
73 IF IGS_AD_VAL_AC.admp_val_ac_upd (
74 new_references.admission_cat,
75 v_message_name) = FALSE THEN
76 Fnd_Message.Set_Name('IGS',v_message_name);
77 IGS_GE_MSG_STACK.ADD;
78 App_Exception.Raise_Exception;
79 END IF;
80 END IF;
81 END BeforeRowInsertUpdate1;
82
83 PROCEDURE Check_Constraints (
84 Column_Name IN VARCHAR2 DEFAULT NULL,
85 Column_Value IN VARCHAR2 DEFAULT NULL
86 ) AS
87 BEGIN
88 IF column_name is null then
89 NULL;
90 ELSIF upper(Column_name) = 'S_CITIZENSHIP_TYPE' Then
91 new_references.s_citizenship_type := column_value;
92 ELSIF upper(Column_name) = 'ADMISSION_CAT' Then
93 new_references.admission_cat := column_value;
94 ELSIF upper(Column_name) = 'CLOSED_IND' Then
95 new_references.closed_ind := column_value;
96 END IF;
97
98 IF upper(column_name) = 'S_CITIZENSHIP_TYPE' OR column_name is null Then
99 IF new_references.s_citizenship_type NOT IN ('ALL','DOMESTIC','INTRNTNL') Then
100 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
101 IGS_GE_MSG_STACK.ADD;
102 App_Exception.Raise_Exception;
103 END IF;
104 END IF;
105 IF upper(column_name) = 'ADMISSION_CAT' OR column_name is null Then
106 IF new_references.admission_cat <> UPPER(new_references.admission_cat) Then
107 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
108 IGS_GE_MSG_STACK.ADD;
109 App_Exception.Raise_Exception;
110 END IF;
111 END IF;
112 IF upper(column_name) = 'CLOSED_IND' OR column_name is null Then
113 IF new_references.closed_ind NOT IN ( 'Y' , 'N' ) Then
114 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
115 IGS_GE_MSG_STACK.ADD;
116 App_Exception.Raise_Exception;
117 END IF;
118 END IF;
119 END Check_Constraints;
120
121
122 PROCEDURE Check_Child_Existance AS
123 BEGIN
124
125 IGS_AD_PRCS_CAT_PKG.GET_FK_IGS_AD_CAT (
126 old_references.admission_cat
127 );
128
129 IGS_AD_CAT_PS_TYPE_PKG.GET_FK_IGS_AD_CAT (
130 old_references.admission_cat
131 );
132
133 IGS_AD_CT_HECS_PAYOP_PKG.GET_FK_IGS_AD_CAT (
134 old_references.admission_cat
135 );
136
137 IGS_AD_PERD_AD_CAT_PKG.GET_FK_IGS_AD_CAT (
138 old_references.admission_cat
139 );
140
141 IGS_CO_CAT_MAP_PKG.GET_FK_IGS_AD_CAT (
142 old_references.admission_cat
143 );
144
145 IGS_PS_OF_OPT_AD_CAT_PKG.GET_FK_IGS_AD_CAT (
146 old_references.admission_cat
147 );
148
149 IGS_EN_CAT_MAPPING_PKG.GET_FK_IGS_AD_CAT (
150 old_references.admission_cat
151 );
152
153 IGS_FI_FEE_CAT_MAP_PKG.GET_FK_IGS_AD_CAT (
154 old_references.admission_cat
155 );
156
157 IGS_PS_PAT_OF_STUDY_PKG.GET_FK_IGS_AD_CAT (
158 old_references.admission_cat
159 );
160
161 IGS_AD_APCTR_RU_PKG.GET_FK_IGS_AD_CAT (
162 old_references.admission_cat
163 );
164
165 END Check_Child_Existance;
166
167 Function Get_PK_For_Validation (
168 x_admission_cat IN VARCHAR2,
169 x_closed_ind IN VARCHAR2 )
170 RETURN BOOLEAN AS
171 gv_other_detail VARCHAR2(255);
172 CURSOR cur_rowid IS
173 SELECT rowid
174 FROM IGS_AD_CAT_ALL
175 WHERE admission_cat = x_admission_cat AND
176 closed_ind = NVL(x_closed_ind,closed_ind);
177
178 lv_rowid cur_rowid%RowType;
179 BEGIN -- Get_PK_For_Validation
180 Open cur_rowid;
181 Fetch cur_rowid INTO lv_rowid;
182 IF (cur_rowid%FOUND) THEN
183 Close cur_rowid;
184 Return (TRUE);
185 ELSE
186 Close cur_rowid;
187 Return (FALSE);
188 END IF;
189 END Get_PK_For_Validation;
190
191 PROCEDURE Before_DML (
192 p_action IN VARCHAR2,
193 x_rowid IN VARCHAR2 DEFAULT NULL,
194 x_org_id IN NUMBER DEFAULT NULL,
195 x_admission_cat IN VARCHAR2 DEFAULT NULL,
196 x_description IN VARCHAR2 DEFAULT NULL,
197 x_closed_ind IN VARCHAR2 DEFAULT NULL,
198 x_s_citizenship_type IN VARCHAR2 DEFAULT NULL,
199 x_creation_date IN DATE DEFAULT NULL,
200 x_created_by IN NUMBER DEFAULT NULL,
201 x_last_update_date IN DATE DEFAULT NULL,
202 x_last_updated_by IN NUMBER DEFAULT NULL,
203 x_last_update_login IN NUMBER DEFAULT NULL
204 ) AS
205 BEGIN
206 Set_Column_Values (
207 p_action,
208 x_rowid,
209 x_org_id,
210 x_admission_cat,
211 x_description,
212 x_closed_ind,
213 x_s_citizenship_type,
214 x_creation_date,
215 x_created_by,
216 x_last_update_date,
217 x_last_updated_by,
218 x_last_update_login
219 );
220 IF (p_action = 'INSERT') THEN
221 -- Call all the procedures related to Before Insert.
222
223 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
224 IF Get_PK_For_Validation (
225 new_references.admission_cat ) THEN
226 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
227 IGS_GE_MSG_STACK.ADD;
228 App_Exception.Raise_Exception;
229 END IF;
230 Check_Constraints;
231 ELSIF (p_action = 'UPDATE') THEN
232 -- Call all the procedures related to Before Update.
233 BeforeRowInsertUpdate1 ( p_updating => TRUE );
234 Check_Constraints;
235 ELSIF (p_action = 'DELETE') THEN
236 -- Call all the procedures related to Before Delete.
237 Check_Child_Existance;
238 ELSIF (p_action = 'VALIDATE_INSERT') THEN
239 IF Get_PK_For_Validation (
240 new_references.admission_cat ) THEN
241 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
242 IGS_GE_MSG_STACK.ADD;
243 App_Exception.Raise_Exception;
244 END IF;
245 Check_Constraints;
246 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
247 Check_Constraints;
248 ELSIF (p_action = 'VALIDATE_DELETE') THEN
249 Check_Child_Existance;
250 END IF;
251 END Before_DML;
252
253 PROCEDURE After_DML (
254 p_action IN VARCHAR2,
255 x_rowid IN VARCHAR2
256 ) AS
257 BEGIN
258
259 l_rowid := x_rowid;
260
261 END After_DML;
262
263 procedure INSERT_ROW (
264 X_ROWID in out NOCOPY VARCHAR2,
265 X_ORG_ID in NUMBER,
266 X_ADMISSION_CAT in VARCHAR2,
267 X_DESCRIPTION in VARCHAR2,
268 X_S_CITIZENSHIP_TYPE in VARCHAR2,
269 X_CLOSED_IND in VARCHAR2,
270 X_MODE in VARCHAR2 default 'R'
271 ) AS
272 cursor C is select ROWID from IGS_AD_CAT_ALL
273 where ADMISSION_CAT = X_ADMISSION_CAT;
274 X_LAST_UPDATE_DATE DATE;
275 X_LAST_UPDATED_BY NUMBER;
276 X_LAST_UPDATE_LOGIN NUMBER;
277 begin
278 X_LAST_UPDATE_DATE := SYSDATE;
279 if(X_MODE = 'I') then
280 X_LAST_UPDATED_BY := 1;
281 X_LAST_UPDATE_LOGIN := 0;
282 elsif (X_MODE = 'R') then
283 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
284 if X_LAST_UPDATED_BY is NULL then
285 X_LAST_UPDATED_BY := -1;
286 end if;
287 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
288 if X_LAST_UPDATE_LOGIN is NULL then
289 X_LAST_UPDATE_LOGIN := -1;
290 end if;
291 else
292 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
293 IGS_GE_MSG_STACK.ADD;
294 app_exception.raise_exception;
295 end if;
296
297 Before_DML(
298 p_action=>'INSERT',
299 x_rowid=>X_ROWID,
300 x_org_id => igs_ge_gen_003.get_org_id,
301 x_admission_cat=>X_ADMISSION_CAT,
302 x_closed_ind=>Nvl(X_CLOSED_IND, 'N'),
303 x_description=>X_DESCRIPTION,
304 x_s_citizenship_type=>X_S_CITIZENSHIP_TYPE,
305 x_creation_date=>X_LAST_UPDATE_DATE,
306 x_created_by=>X_LAST_UPDATED_BY,
307 x_last_update_date=>X_LAST_UPDATE_DATE,
308 x_last_updated_by=>X_LAST_UPDATED_BY,
309 x_last_update_login=>X_LAST_UPDATE_LOGIN
310 );
311
312 insert into IGS_AD_CAT_ALL (
313 ORG_ID,
314 ADMISSION_CAT,
315 DESCRIPTION,
316 S_CITIZENSHIP_TYPE,
317 CLOSED_IND,
318 CREATION_DATE,
319 CREATED_BY,
320 LAST_UPDATE_DATE,
321 LAST_UPDATED_BY,
322 LAST_UPDATE_LOGIN
323 ) values (
324 NEW_REFERENCES.ORG_ID,
325 NEW_REFERENCES.ADMISSION_CAT,
326 NEW_REFERENCES.DESCRIPTION,
327 NEW_REFERENCES.S_CITIZENSHIP_TYPE,
328 NEW_REFERENCES.CLOSED_IND,
329 X_LAST_UPDATE_DATE,
330 X_LAST_UPDATED_BY,
331 X_LAST_UPDATE_DATE,
332 X_LAST_UPDATED_BY,
333 X_LAST_UPDATE_LOGIN
334 );
335
336 open c;
337 fetch c into X_ROWID;
338 if (c%notfound) then
339 close c;
340 raise no_data_found;
341 end if;
342 close c;
343
344 After_DML (
345 p_action => 'INSERT',
346 x_rowid => X_ROWID);
347
348 end INSERT_ROW;
349
350 procedure LOCK_ROW (
351 X_ROWID in VARCHAR2,
352 X_ADMISSION_CAT in VARCHAR2,
353 X_DESCRIPTION in VARCHAR2,
354 X_S_CITIZENSHIP_TYPE in VARCHAR2,
355 X_CLOSED_IND in VARCHAR2
356 ) AS
357 cursor c1 is select
358 DESCRIPTION,
359 S_CITIZENSHIP_TYPE,
360 CLOSED_IND
361 from IGS_AD_CAT_ALL
362 where ROWID = X_ROWID for update nowait;
363 tlinfo c1%rowtype;
364
365 begin
366 open c1;
367 fetch c1 into tlinfo;
368 if (c1%notfound) then
369 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
370 IGS_GE_MSG_STACK.ADD;
371 app_exception.raise_exception;
372 close c1;
373 return;
374 end if;
375 close c1;
376
377 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
378 AND (tlinfo.S_CITIZENSHIP_TYPE = X_S_CITIZENSHIP_TYPE)
379 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
380 ) then
381 null;
382 else
383 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
384 IGS_GE_MSG_STACK.ADD;
385 app_exception.raise_exception;
386 end if;
387 return;
388 end LOCK_ROW;
389
390 procedure UPDATE_ROW (
391 X_ROWID in VARCHAR2,
392 X_ADMISSION_CAT in VARCHAR2,
393 X_DESCRIPTION in VARCHAR2,
394 X_S_CITIZENSHIP_TYPE in VARCHAR2,
395 X_CLOSED_IND in VARCHAR2,
396 X_MODE in VARCHAR2 default 'R'
397 ) AS
398 X_LAST_UPDATE_DATE DATE;
399 X_LAST_UPDATED_BY NUMBER;
400 X_LAST_UPDATE_LOGIN NUMBER;
401 begin
402 X_LAST_UPDATE_DATE := SYSDATE;
403 if(X_MODE = 'I') then
404 X_LAST_UPDATED_BY := 1;
405 X_LAST_UPDATE_LOGIN := 0;
406 elsif (X_MODE = 'R') then
407 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
408 if X_LAST_UPDATED_BY is NULL then
409 X_LAST_UPDATED_BY := -1;
410 end if;
411 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
412 if X_LAST_UPDATE_LOGIN is NULL then
413 X_LAST_UPDATE_LOGIN := -1;
414 end if;
415 else
416 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
417 IGS_GE_MSG_STACK.ADD;
418 app_exception.raise_exception;
419 end if;
420
421 Before_DML(
422 p_action=>'UPDATE',
423 x_rowid=>X_ROWID,
424 x_admission_cat=>X_ADMISSION_CAT,
425 x_closed_ind=>X_CLOSED_IND,
426 x_description=>X_DESCRIPTION,
427 x_s_citizenship_type=>X_S_CITIZENSHIP_TYPE,
428 x_creation_date=>X_LAST_UPDATE_DATE,
429 x_created_by=>X_LAST_UPDATED_BY,
430 x_last_update_date=>X_LAST_UPDATE_DATE,
431 x_last_updated_by=>X_LAST_UPDATED_BY,
432 x_last_update_login=>X_LAST_UPDATE_LOGIN
433 );
434
435 update IGS_AD_CAT_ALL set
436 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
437 S_CITIZENSHIP_TYPE = NEW_REFERENCES.S_CITIZENSHIP_TYPE,
438 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
439 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
440 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
441 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
442 where ROWID = X_ROWID
443 ;
444 if (sql%notfound) then
445 raise no_data_found;
446 end if;
447
448 After_DML (
449 p_action => 'UPDATE',
450 x_rowid => X_ROWID);
451
452 end UPDATE_ROW;
453
454 procedure ADD_ROW (
455 X_ROWID in out NOCOPY VARCHAR2,
456 X_ORG_ID in NUMBER,
457 X_ADMISSION_CAT in VARCHAR2,
458 X_DESCRIPTION in VARCHAR2,
459 X_S_CITIZENSHIP_TYPE in VARCHAR2,
460 X_CLOSED_IND in VARCHAR2,
461 X_MODE in VARCHAR2 default 'R'
462 ) AS
463 cursor c1 is select rowid from IGS_AD_CAT_ALL
464 where ADMISSION_CAT = X_ADMISSION_CAT
465 ;
466 begin
467 open c1;
468 fetch c1 into X_ROWID;
469 if (c1%notfound) then
470 close c1;
471 INSERT_ROW (
472 X_ROWID,
473 X_ORG_ID,
474 X_ADMISSION_CAT,
475 X_DESCRIPTION,
476 X_S_CITIZENSHIP_TYPE,
477 X_CLOSED_IND,
478 X_MODE);
479 return;
480 end if;
481 close c1;
482 UPDATE_ROW (
483 X_ROWID,
484 X_ADMISSION_CAT,
485 X_DESCRIPTION,
486 X_S_CITIZENSHIP_TYPE,
487 X_CLOSED_IND,
488 X_MODE);
489 end ADD_ROW;
490
491 procedure DELETE_ROW (
492 X_ROWID in VARCHAR2
493 ) AS
494 begin
495
496 Before_DML (
497 p_action => 'DELETE',
498 x_rowid => X_ROWID);
499
500 delete from IGS_AD_CAT_ALL
501 where ROWID = X_ROWID;
502 if (sql%notfound) then
503 raise no_data_found;
504 end if;
505
506 After_DML (
507 p_action => 'DELETE',
508 x_rowid => X_ROWID);
509
510 end DELETE_ROW;
511
512 end IGS_AD_CAT_PKG;