[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_BASIS_FOR_AD_PKG
Source
1 package body IGS_AD_BASIS_FOR_AD_PKG as
2 /* $Header: IGSAI69B.pls 115.6 2003/10/30 13:16:28 akadam ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_AD_BASIS_FOR_AD%RowType;
6 new_references IGS_AD_BASIS_FOR_AD%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_basis_for_admission_type IN VARCHAR2 DEFAULT NULL,
12 x_description IN VARCHAR2 DEFAULT NULL,
13 x_govt_basis_for_adm_type IN VARCHAR2 DEFAULT NULL,
14 x_closed_ind IN VARCHAR2 DEFAULT NULL,
15 x_creation_date IN DATE DEFAULT NULL,
16 x_created_by IN NUMBER DEFAULT NULL,
17 x_last_update_date IN DATE DEFAULT NULL,
18 x_last_updated_by IN NUMBER DEFAULT NULL,
19 x_last_update_login IN NUMBER DEFAULT NULL
20 ) as
21
22 CURSOR cur_old_ref_values IS
23 SELECT *
24 FROM IGS_AD_BASIS_FOR_AD
25 WHERE rowid = x_rowid;
26
27 BEGIN
28
29 l_rowid := x_rowid;
30
31 Open cur_old_ref_values;
32 Fetch cur_old_ref_values INTO old_references;
33 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
34 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
35 IGS_GE_MSG_STACK.ADD;
36 App_Exception.Raise_Exception;
37 Close cur_old_ref_values;
38 Return;
39 END IF;
40 Close cur_old_ref_values;
41
42 new_references.basis_for_admission_type := x_basis_for_admission_type;
43 new_references.description := x_description;
44 new_references.govt_basis_for_adm_type := x_govt_basis_for_adm_type;
45 new_references.closed_ind := x_closed_ind;
46 IF (p_action = 'UPDATE') THEN
47 new_references.creation_date := old_references.creation_date;
48 new_references.created_by := old_references.created_by;
49 ELSE
50 new_references.creation_date := x_creation_date;
51 new_references.created_by := x_created_by;
52 END IF;
53 new_references.last_update_date := x_last_update_date;
54 new_references.last_updated_by := x_last_updated_by;
55 new_references.last_update_login := x_last_update_login;
56
57 END Set_Column_Values;
58
59 PROCEDURE BeforeRowInsertUpdate1(
60 p_inserting IN BOOLEAN DEFAULT FALSE,
61 p_updating IN BOOLEAN DEFAULT FALSE,
62 p_deleting IN BOOLEAN DEFAULT FALSE
63 ) as
64 v_message_name VARCHAR2(30);
65 BEGIN
66 -- Validate Government Basis for Admission Type.
67 IF p_inserting OR ((old_references.govt_basis_for_adm_type <>
68 new_references.govt_basis_for_adm_type) OR
69 (old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N')) THEN
70 IF IGS_AD_VAL_BFA.admp_val_gbfat_clsd(
71 new_references.govt_basis_for_adm_type,
72 v_message_name) = FALSE THEN
73 Fnd_Message.Set_Name('IGS',v_message_name);
74 IGS_GE_MSG_STACK.ADD;
75 App_Exception.Raise_Exception;
76 END IF;
77 END IF;
78
79
80 END BeforeRowInsertUpdate1;
81
82 PROCEDURE Check_Constraints (
83 Column_Name IN VARCHAR2 DEFAULT NULL,
84 Column_Value IN VARCHAR2 DEFAULT NULL
85 )
86 as
87 BEGIN
88 IF Column_Name is null then
89 NULL;
90 ELSIF upper(Column_Name) = 'CLOSED_IND' then
91 new_references.closed_ind := column_value;
92 ELSIF upper(Column_Name) = 'BASIS_FOR_ADMISSION_TYPE' then
93 new_references.basis_for_admission_type := column_value;
94 ELSIF upper(Column_Name) = 'GOVT_BASIS_FOR_ADM_TYPE' then
95 new_references.govt_basis_for_adm_type := column_value;
96 END IF;
97
98 IF upper(Column_Name) = 'CLOSED_IND' OR Column_Name IS NULL THEN
99 IF new_references.closed_ind NOT IN ('Y','N') 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) = 'BASIS_FOR_ADMISSION_TYPE' OR Column_Name IS NULL THEN
106 IF new_references.basis_for_admission_type <> UPPER(new_references.basis_for_admission_type) 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) = 'GOVT_BASIS_FOR_ADM_TYPE' OR Column_Name IS NULL THEN
113 IF new_references.govt_basis_for_adm_type <> UPPER(new_references.govt_basis_for_adm_type) 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
120 END Check_Constraints;
121
122 PROCEDURE Check_Parent_Existance as
123 BEGIN
124
125 IF (((old_references.govt_basis_for_adm_type = new_references.govt_basis_for_adm_type)) OR
126 ((new_references.govt_basis_for_adm_type IS NULL))) THEN
127 NULL;
128 ELSE
129 IF NOT IGS_AD_GOV_BAS_FR_TY_PKG.Get_PK_For_Validation (
130 new_references.govt_basis_for_adm_type,
131 'N' ) THEN
132 Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
133 IGS_GE_MSG_STACK.ADD;
134 App_Exception.Raise_Exception;
135 END IF;
136 END IF;
137
138 END Check_Parent_Existance;
139
140 PROCEDURE Check_Child_Existance as
141 BEGIN
142
143 IGS_AD_CD_PKG.GET_FK_IGS_AD_BASIS_FOR_AD (
144 old_references.basis_for_admission_type
145 );
146
147 IGS_AD_PS_APPL_PKG.GET_FK_IGS_AD_BASIS_FOR_AD (
148 old_references.basis_for_admission_type
149 );
150
151 END Check_Child_Existance;
152
153 FUNCTION Get_PK_For_Validation (
154 x_basis_for_admission_type IN VARCHAR2,
155 x_closed_ind IN VARCHAR2
156 )return BOOLEAN as
157
158 CURSOR cur_rowid IS
159 SELECT rowid
160 FROM IGS_AD_BASIS_FOR_AD
161 WHERE basis_for_admission_type = x_basis_for_admission_type AND
162 closed_ind = NVL(x_closed_ind,closed_ind);
163
164 lv_rowid cur_rowid%RowType;
165
166 BEGIN
167
168 Open cur_rowid;
169 Fetch cur_rowid INTO lv_rowid;
170 IF (cur_rowid%FOUND) THEN
171 Close cur_rowid;
172 Return(TRUE);
173 ELSE
174 Close cur_rowid;
175 Return(FALSE);
176 END IF;
177
178 END Get_PK_For_Validation;
179
180 PROCEDURE get_fk_igs_ad_gov_bas_fr_ty (
181 x_govt_basis_for_adm_type IN VARCHAR2
182 ) as
183
184 CURSOR cur_rowid IS
185 SELECT rowid
186 FROM IGS_AD_BASIS_FOR_AD
187 WHERE govt_basis_for_adm_type = x_govt_basis_for_adm_type ;
188
189 lv_rowid cur_rowid%RowType;
190
191 BEGIN
192
193 Open cur_rowid;
194 Fetch cur_rowid INTO lv_rowid;
195 IF (cur_rowid%FOUND) THEN
196 Close cur_rowid;
197 Fnd_Message.Set_Name ('IGS', 'IGS_AD_BFA_GBFAT_FK');
198 IGS_GE_MSG_STACK.ADD;
199 App_Exception.Raise_Exception;
200 Return;
201 END IF;
202 Close cur_rowid;
203
204 END get_fk_igs_ad_gov_bas_fr_ty;
205
206 PROCEDURE Before_DML (
207 p_action IN VARCHAR2,
208 x_rowid IN VARCHAR2 DEFAULT NULL,
209 x_basis_for_admission_type IN VARCHAR2 DEFAULT NULL,
210 x_description IN VARCHAR2 DEFAULT NULL,
211 x_govt_basis_for_adm_type IN VARCHAR2 DEFAULT NULL,
212 x_closed_ind IN VARCHAR2 DEFAULT NULL,
213 x_creation_date IN DATE DEFAULT NULL,
214 x_created_by IN NUMBER DEFAULT NULL,
215 x_last_update_date IN DATE DEFAULT NULL,
216 x_last_updated_by IN NUMBER DEFAULT NULL,
217 x_last_update_login IN NUMBER DEFAULT NULL
218 ) as
219 BEGIN
220
221 Set_Column_Values (
222 p_action,
223 x_rowid,
224 x_basis_for_admission_type,
225 x_description,
226 x_govt_basis_for_adm_type,
227 x_closed_ind,
228 x_creation_date,
229 x_created_by,
230 x_last_update_date,
231 x_last_updated_by,
232 x_last_update_login
233 );
234
235 IF (p_action = 'INSERT') THEN
236 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
237 IF Get_PK_For_Validation (
238 new_references.basis_for_admission_type
239 ) THEN
240 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
241 IGS_GE_MSG_STACK.ADD;
242 App_Exception.Raise_Exception;
243 END IF;
244 Check_Constraints;
245 Check_Parent_Existance;
246 ELSIF (p_action = 'UPDATE') THEN
247 BeforeRowInsertUpdate1 ( p_updating => TRUE );
248 Check_Constraints;
249 Check_Parent_Existance;
250 ELSIF (p_action = 'DELETE') THEN
251 Check_Child_Existance;
252 ELSIF (p_action = 'VALIDATE_INSERT') THEN
253 IF Get_PK_For_Validation (
254 new_references.basis_for_admission_type
255 ) THEN
256 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
257 IGS_GE_MSG_STACK.ADD;
258 App_Exception.Raise_Exception;
259 END IF;
260 Check_Constraints;
261 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
262 Check_Constraints;
263 ELSIF (p_action = 'VALIDATE_DELETE') THEN
264 Check_Child_Existance;
265 END IF;
266
267 END Before_DML;
268
269 PROCEDURE After_DML (
270 p_action IN VARCHAR2,
271 x_rowid IN VARCHAR2
272 ) as
273 BEGIN
274
275 l_rowid := x_rowid;
276
277 END After_DML;
278
279 procedure INSERT_ROW (
280 X_ROWID in out NOCOPY VARCHAR2,
281 X_BASIS_FOR_ADMISSION_TYPE in VARCHAR2,
282 X_DESCRIPTION in VARCHAR2,
283 X_GOVT_BASIS_FOR_ADM_TYPE in VARCHAR2,
284 X_CLOSED_IND in VARCHAR2,
285 X_MODE in VARCHAR2 default 'R'
286 ) as
287 cursor C is select ROWID from IGS_AD_BASIS_FOR_AD
288 where BASIS_FOR_ADMISSION_TYPE = X_BASIS_FOR_ADMISSION_TYPE;
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
312 Before_DML(
313 p_action=>'INSERT',
314 x_rowid=>X_ROWID,
315 x_basis_for_admission_type=>X_BASIS_FOR_ADMISSION_TYPE,
316 x_closed_ind=>Nvl(X_CLOSED_IND, 'N'),
317 x_description=>X_DESCRIPTION,
318 x_govt_basis_for_adm_type=>X_GOVT_BASIS_FOR_ADM_TYPE,
319 x_creation_date=>X_LAST_UPDATE_DATE,
320 x_created_by=>X_LAST_UPDATED_BY,
321 x_last_update_date=>X_LAST_UPDATE_DATE,
322 x_last_updated_by=>X_LAST_UPDATED_BY,
323 x_last_update_login=>X_LAST_UPDATE_LOGIN
324 );
325
326 insert into IGS_AD_BASIS_FOR_AD (
327 BASIS_FOR_ADMISSION_TYPE,
328 DESCRIPTION,
329 GOVT_BASIS_FOR_ADM_TYPE,
330 CLOSED_IND,
331 CREATION_DATE,
332 CREATED_BY,
333 LAST_UPDATE_DATE,
334 LAST_UPDATED_BY,
335 LAST_UPDATE_LOGIN
336 ) values (
337 NEW_REFERENCES.BASIS_FOR_ADMISSION_TYPE,
338 NEW_REFERENCES.DESCRIPTION,
339 NEW_REFERENCES.GOVT_BASIS_FOR_ADM_TYPE,
340 NEW_REFERENCES.CLOSED_IND,
341 X_LAST_UPDATE_DATE,
342 X_LAST_UPDATED_BY,
343 X_LAST_UPDATE_DATE,
344 X_LAST_UPDATED_BY,
345 X_LAST_UPDATE_LOGIN
346 );
347
348 open c;
349 fetch c into X_ROWID;
350 if (c%notfound) then
351 close c;
352 raise no_data_found;
353 end if;
354 close c;
355
356 After_DML (
357 p_action => 'INSERT',
358 x_rowid => X_ROWID);
359
360 end INSERT_ROW;
361
362 procedure LOCK_ROW (
363 X_ROWID in VARCHAR2,
364 X_BASIS_FOR_ADMISSION_TYPE in VARCHAR2,
365 X_DESCRIPTION in VARCHAR2,
366 X_GOVT_BASIS_FOR_ADM_TYPE in VARCHAR2,
367 X_CLOSED_IND in VARCHAR2
368 ) as
369 cursor c1 is select
370 DESCRIPTION,
371 GOVT_BASIS_FOR_ADM_TYPE,
372 CLOSED_IND
373 from IGS_AD_BASIS_FOR_AD
374 where ROWID = X_ROWID for update nowait;
375 tlinfo c1%rowtype;
376
377 begin
378 open c1;
379 fetch c1 into tlinfo;
380 if (c1%notfound) then
381 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
382 IGS_GE_MSG_STACK.ADD;
383 app_exception.raise_exception;
384 close c1;
385 return;
386 end if;
387 close c1;
388
389 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
390 AND ((tlinfo.GOVT_BASIS_FOR_ADM_TYPE = X_GOVT_BASIS_FOR_ADM_TYPE)
391 OR ((tlinfo.GOVT_BASIS_FOR_ADM_TYPE is null)
392 AND (X_GOVT_BASIS_FOR_ADM_TYPE is null)))
393 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
394 ) then
395 null;
396 else
397 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
398 IGS_GE_MSG_STACK.ADD;
399 app_exception.raise_exception;
400 end if;
401 return;
402 end LOCK_ROW;
403
404 procedure UPDATE_ROW (
405 X_ROWID in VARCHAR2,
406 X_BASIS_FOR_ADMISSION_TYPE in VARCHAR2,
407 X_DESCRIPTION in VARCHAR2,
408 X_GOVT_BASIS_FOR_ADM_TYPE in VARCHAR2,
409 X_CLOSED_IND in VARCHAR2,
410 X_MODE in VARCHAR2 default 'R'
411 ) as
412 X_LAST_UPDATE_DATE DATE;
413 X_LAST_UPDATED_BY NUMBER;
414 X_LAST_UPDATE_LOGIN NUMBER;
415 begin
416 X_LAST_UPDATE_DATE := SYSDATE;
417 if(X_MODE = 'I') then
418 X_LAST_UPDATED_BY := 1;
419 X_LAST_UPDATE_LOGIN := 0;
420 elsif (X_MODE = 'R') then
421 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
422 if X_LAST_UPDATED_BY is NULL then
423 X_LAST_UPDATED_BY := -1;
424 end if;
425 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
426 if X_LAST_UPDATE_LOGIN is NULL then
427 X_LAST_UPDATE_LOGIN := -1;
428 end if;
429 else
430 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
431 IGS_GE_MSG_STACK.ADD;
432 app_exception.raise_exception;
433 end if;
434
435 Before_DML(
436 p_action=>'UPDATE',
437 x_rowid=>X_ROWID,
438 x_basis_for_admission_type=>X_BASIS_FOR_ADMISSION_TYPE,
439 x_closed_ind=>X_CLOSED_IND,
440 x_description=>X_DESCRIPTION,
441 x_govt_basis_for_adm_type=>X_GOVT_BASIS_FOR_ADM_TYPE,
442 x_creation_date=>X_LAST_UPDATE_DATE,
443 x_created_by=>X_LAST_UPDATED_BY,
444 x_last_update_date=>X_LAST_UPDATE_DATE,
445 x_last_updated_by=>X_LAST_UPDATED_BY,
446 x_last_update_login=>X_LAST_UPDATE_LOGIN
447 );
448
449 update IGS_AD_BASIS_FOR_AD set
450 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
451 GOVT_BASIS_FOR_ADM_TYPE = NEW_REFERENCES.GOVT_BASIS_FOR_ADM_TYPE,
452 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
453 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
454 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
455 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
456 where ROWID = X_ROWID
457 ;
458 if (sql%notfound) then
459 raise no_data_found;
460 end if;
461
462 After_DML (
463 p_action => 'UPDATE',
464 x_rowid => X_ROWID);
465
466 end UPDATE_ROW;
467
468 procedure ADD_ROW (
469 X_ROWID in out NOCOPY VARCHAR2,
470 X_BASIS_FOR_ADMISSION_TYPE in VARCHAR2,
471 X_DESCRIPTION in VARCHAR2,
472 X_GOVT_BASIS_FOR_ADM_TYPE in VARCHAR2,
473 X_CLOSED_IND in VARCHAR2,
474 X_MODE in VARCHAR2 default 'R'
475 ) as
476 cursor c1 is select rowid from IGS_AD_BASIS_FOR_AD
477 where BASIS_FOR_ADMISSION_TYPE = X_BASIS_FOR_ADMISSION_TYPE
478 ;
479 begin
480 open c1;
481 fetch c1 into X_ROWID;
482 if (c1%notfound) then
483 close c1;
484 INSERT_ROW (
485 X_ROWID,
486 X_BASIS_FOR_ADMISSION_TYPE,
487 X_DESCRIPTION,
488 X_GOVT_BASIS_FOR_ADM_TYPE,
489 X_CLOSED_IND,
490 X_MODE);
491 return;
492 end if;
493 close c1;
494 UPDATE_ROW (
495 X_ROWID,
496 X_BASIS_FOR_ADMISSION_TYPE,
497 X_DESCRIPTION,
498 X_GOVT_BASIS_FOR_ADM_TYPE,
499 X_CLOSED_IND,
500 X_MODE);
501 end ADD_ROW;
502
503 procedure DELETE_ROW (
504 X_ROWID in VARCHAR2
505 ) as
506 begin
507
508 Before_DML (
509 p_action => 'DELETE',
510 x_rowid => X_ROWID);
511
512 delete from IGS_AD_BASIS_FOR_AD
513 where ROWID = X_ROWID;
514 if (sql%notfound) then
515 raise no_data_found;
516 end if;
517
518 After_DML (
519 p_action => 'DELETE',
520 x_rowid => X_ROWID);
521
522 end DELETE_ROW;
523
524 end IGS_AD_BASIS_FOR_AD_PKG;