DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_AUS_SEC_ED_SC_PKG

Source


1 package body IGS_AD_AUS_SEC_ED_SC_PKG as
2 /* $Header: IGSAI66B.pls 115.5 2003/10/30 13:13:49 akadam ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_AD_AUS_SEC_ED_SC%RowType;
6   new_references IGS_AD_AUS_SEC_ED_SC%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_secondary_school_cd IN VARCHAR2 DEFAULT NULL,
12     x_secondary_school_name IN VARCHAR2 DEFAULT NULL,
13     x_state_cd IN VARCHAR2 DEFAULT NULL,
14     x_s_scndry_school_type IN VARCHAR2 DEFAULT NULL,
15     x_closed_ind 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_AUS_SEC_ED_SC
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       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38       IGS_GE_MSG_STACK.ADD;
39       App_Exception.Raise_Exception;
40       Close cur_old_ref_values;
41       Return;
42     END IF;
43     Close cur_old_ref_values;
44 
45     -- Populate New Values.
46     new_references.secondary_school_cd := x_secondary_school_cd;
47     new_references.secondary_school_name := x_secondary_school_name;
48     new_references.state_cd := x_state_cd;
49     new_references.s_scndry_school_type := x_s_scndry_school_type;
50     new_references.closed_ind := x_closed_ind;
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 System Secondary School Type.
72 	IF p_inserting OR ((old_references.s_scndry_school_type <> new_references.s_scndry_school_type) OR
73 			(old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N')) THEN
74 		IF IGS_AD_VAL_ASES.admp_val_ssst_closed(
75 					new_references.s_scndry_school_type,
76 					v_message_name) = FALSE THEN
77 		         Fnd_Message.Set_Name('IGS',v_message_name);
78 		         IGS_GE_MSG_STACK.ADD;
79                      App_Exception.Raise_Exception;
80 		END IF;
81 	END IF;
82 
83 
84   END BeforeRowInsertUpdate1;
85 
86   PROCEDURE Check_Constraints (
87     Column_Name IN VARCHAR2 DEFAULT NULL,
88     Column_Value IN VARCHAR2 DEFAULT NULL
89   )
90   as
91   BEGIN
92 	IF Column_Name is null then
93 		NULL;
94 	ELSIF upper(Column_Name) = 'SECONDARY_SCHOOL_CD' then
95 		new_references.secondary_school_cd := column_value;
96 	ELSIF upper(Column_Name) = 'STATE_CD' then
97 		new_references.state_cd := column_value;
98 	ELSIF upper(Column_Name) = 'S_SCNDRY_SCHOOL_TYPE' then
99 		new_references.s_scndry_school_type := column_value;
100 	ELSIF upper(Column_Name) = 'CLOSED_IND' then
101 		new_references.closed_ind := column_value;
102 	END IF;
103 
104 	IF upper(Column_Name) = 'STATE_CD' OR Column_Name IS NULL THEN
105 		IF new_references.state_cd <> UPPER(new_references.state_cd) THEN
106 			Fnd_Message.Set_Name('IGS','IGS_INVALID_VALUE');
107 			IGS_GE_MSG_STACK.ADD;
108 			App_Exception.Raise_Exception;
109 		END IF;
110 	END IF;
111 	IF upper(Column_Name) = 'S_SCNDRY_SCHOOL_TYPE' OR Column_Name IS NULL THEN
112 		IF new_references.s_scndry_school_type <> UPPER(new_references.s_scndry_school_type) THEN
113 			Fnd_Message.Set_Name('IGS','IGS_INVALID_VALUE');
114 			IGS_GE_MSG_STACK.ADD;
115 			App_Exception.Raise_Exception;
116 		END IF;
117 	END IF;
118 	IF upper(Column_Name) = 'CLOSED_IND' OR Column_Name IS NULL THEN
119 		IF new_references.closed_ind NOT IN ('Y','N') THEN
120 			Fnd_Message.Set_Name('IGS','IGS_INVALID_VALUE');
121 			IGS_GE_MSG_STACK.ADD;
122 			App_Exception.Raise_Exception;
123 		END IF;
124 	END IF;
125   END Check_Constraints;
126 
127   PROCEDURE Check_Parent_Existance as
128   BEGIN
129 
130     IF (((old_references.s_scndry_school_type = new_references.s_scndry_school_type)) OR
131         ((new_references.s_scndry_school_type IS NULL))) THEN
132       NULL;
133     ELSE
134 	IF NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation(
135 		'SCNDRY_SCHOOL_TYPE',
136 		new_references.s_scndry_school_type
137 	) THEN
138 	Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
139 	IGS_GE_MSG_STACK.ADD;
140 	App_Exception.Raise_Exception;
141 	END IF;
142     END IF;
143 
144   END Check_Parent_Existance;
145 
146   PROCEDURE Check_Child_Existance as
147   BEGIN
148 
149     IGS_AD_AUS_SEC_EDU_PKG.get_fk_igs_ad_aus_sec_ed_sc (
150       old_references.secondary_school_cd
151       );
152 
153   END Check_Child_Existance;
154 
155 FUNCTION Get_PK_For_Validation (
156     x_secondary_school_cd IN VARCHAR2,
157     x_closed_ind IN VARCHAR2
158 )return BOOLEAN as
159 
160     CURSOR cur_rowid IS
161       SELECT   rowid
162       FROM     IGS_AD_AUS_SEC_ED_SC
163       WHERE    secondary_school_cd = x_secondary_school_cd AND
164                closed_ind = NVL(x_closed_ind,closed_ind)
165       FOR UPDATE NOWAIT;
166 
167     lv_rowid cur_rowid%RowType;
168 
169   BEGIN
170 
171     Open cur_rowid;
172     Fetch cur_rowid INTO lv_rowid;
173     IF (cur_rowid%FOUND) THEN
174       Close cur_rowid;
175       Return(TRUE);
176     ELSE
177       Close cur_rowid;
178       Return(FALSE);
179     END IF;
180 
181   END Get_PK_For_Validation;
182 
183 
184   PROCEDURE GET_FK_IGS_LOOKUPS_VIEW(
185     x_s_scndry_school_type IN VARCHAR2
186     ) as
187 
188     CURSOR cur_rowid IS
189       SELECT   rowid
190       FROM     IGS_AD_AUS_SEC_ED_SC
191       WHERE    s_scndry_school_type = x_s_scndry_school_type ;
192 
193     lv_rowid cur_rowid%RowType;
194 
195   BEGIN
196 
197     Open cur_rowid;
198     Fetch cur_rowid INTO lv_rowid;
199     IF (cur_rowid%FOUND) THEN
200       Close cur_rowid;
201       Fnd_Message.Set_Name ('IGS', 'IGS_AD_ASES_SLV_FK');
202       IGS_GE_MSG_STACK.ADD;
203       App_Exception.Raise_Exception;
204       Return;
205     END IF;
206     Close cur_rowid;
207 
208   END GET_FK_IGS_LOOKUPS_VIEW;
209 
210   PROCEDURE Before_DML (
211     p_action IN VARCHAR2,
212     x_rowid IN VARCHAR2 DEFAULT NULL,
213     x_secondary_school_cd IN VARCHAR2 DEFAULT NULL,
214     x_secondary_school_name IN VARCHAR2 DEFAULT NULL,
215     x_state_cd IN VARCHAR2 DEFAULT NULL,
216     x_s_scndry_school_type IN VARCHAR2 DEFAULT NULL,
217     x_closed_ind IN VARCHAR2 DEFAULT NULL,
218     x_creation_date IN DATE DEFAULT NULL,
219     x_created_by IN NUMBER DEFAULT NULL,
220     x_last_update_date IN DATE DEFAULT NULL,
221     x_last_updated_by IN NUMBER DEFAULT NULL,
222     x_last_update_login IN NUMBER DEFAULT NULL
223   ) as
224   BEGIN
225 
226     Set_Column_Values (
227       p_action,
228       x_rowid,
229       x_secondary_school_cd,
230       x_secondary_school_name,
231       x_state_cd,
232       x_s_scndry_school_type,
233       x_closed_ind,
234       x_creation_date,
235       x_created_by,
236       x_last_update_date,
237       x_last_updated_by,
238       x_last_update_login
239     );
240 
241     IF (p_action = 'INSERT') THEN
242       BeforeRowInsertUpdate1 ( p_inserting => TRUE );
243 	IF Get_PK_For_Validation (
244 		new_references.secondary_school_cd
245 	) THEN
246 		Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
247 		IGS_GE_MSG_STACK.ADD;
248 		App_Exception.Raise_Exception;
249 	END IF;
250 	Check_Constraints;
251       Check_Parent_Existance;
252     ELSIF (p_action = 'UPDATE') THEN
253       BeforeRowInsertUpdate1 ( p_updating => TRUE );
254 	Check_Constraints;
255       Check_Parent_Existance;
256     ELSIF (p_action = 'DELETE') THEN
257       Check_Child_Existance;
258     ELSIF (p_action = 'VALIDATE_INSERT') THEN
259 	IF Get_PK_For_Validation (
260 		new_references.secondary_school_cd
261 	) THEN
262 		Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
263 		IGS_GE_MSG_STACK.ADD;
264 		App_Exception.Raise_Exception;
265 	END IF;
266 	Check_Constraints;
267     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
268 	Check_Constraints;
269     ELSIF (p_action = 'VALIDATE_DELETE') THEN
270       Check_Child_Existance;
271     END IF;
272 
273   END Before_DML;
274 
275   PROCEDURE After_DML (
276     p_action IN VARCHAR2,
277     x_rowid IN VARCHAR2
278   ) as
279   BEGIN
280 
281     l_rowid := x_rowid;
282 
283   END After_DML;
284 
285 procedure INSERT_ROW (
286   X_ROWID in out NOCOPY VARCHAR2,
287   X_SECONDARY_SCHOOL_CD in VARCHAR2,
288   X_SECONDARY_SCHOOL_NAME in VARCHAR2,
289   X_STATE_CD in VARCHAR2,
290   X_S_SCNDRY_SCHOOL_TYPE in VARCHAR2,
291   X_CLOSED_IND in VARCHAR2,
292   X_MODE in VARCHAR2 default 'R'
293   ) as
294     cursor C is select ROWID from IGS_AD_AUS_SEC_ED_SC
295       where SECONDARY_SCHOOL_CD = X_SECONDARY_SCHOOL_CD;
296     X_LAST_UPDATE_DATE DATE;
297     X_LAST_UPDATED_BY NUMBER;
298     X_LAST_UPDATE_LOGIN NUMBER;
299 begin
300   X_LAST_UPDATE_DATE := SYSDATE;
301   if(X_MODE = 'I') then
302     X_LAST_UPDATED_BY := 1;
303     X_LAST_UPDATE_LOGIN := 0;
304   elsif (X_MODE = 'R') then
305     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
306     if X_LAST_UPDATED_BY is NULL then
307       X_LAST_UPDATED_BY := -1;
308     end if;
309     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
310     if X_LAST_UPDATE_LOGIN is NULL then
311       X_LAST_UPDATE_LOGIN := -1;
312     end if;
313   else
314     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
315     IGS_GE_MSG_STACK.ADD;
316     app_exception.raise_exception;
317   end if;
318 
319   Before_DML(
320    p_action=>'INSERT',
321    x_rowid=>X_ROWID,
322    x_closed_ind=>Nvl(X_CLOSED_IND, 'N'),
323    x_s_scndry_school_type=>X_S_SCNDRY_SCHOOL_TYPE,
324    x_secondary_school_cd=>X_SECONDARY_SCHOOL_CD,
325    x_secondary_school_name=>X_SECONDARY_SCHOOL_NAME,
326    x_state_cd=>X_STATE_CD,
327    x_creation_date=>X_LAST_UPDATE_DATE,
328    x_created_by=>X_LAST_UPDATED_BY,
329    x_last_update_date=>X_LAST_UPDATE_DATE,
330    x_last_updated_by=>X_LAST_UPDATED_BY,
331    x_last_update_login=>X_LAST_UPDATE_LOGIN
332    );
333 
334   insert into IGS_AD_AUS_SEC_ED_SC (
335     SECONDARY_SCHOOL_CD,
336     SECONDARY_SCHOOL_NAME,
337     STATE_CD,
338     S_SCNDRY_SCHOOL_TYPE,
339     CLOSED_IND,
340     CREATION_DATE,
341     CREATED_BY,
342     LAST_UPDATE_DATE,
343     LAST_UPDATED_BY,
344     LAST_UPDATE_LOGIN
345   ) values (
346     NEW_REFERENCES.SECONDARY_SCHOOL_CD,
347     NEW_REFERENCES.SECONDARY_SCHOOL_NAME,
348     NEW_REFERENCES.STATE_CD,
349     NEW_REFERENCES.S_SCNDRY_SCHOOL_TYPE,
350     NEW_REFERENCES.CLOSED_IND,
351     X_LAST_UPDATE_DATE,
352     X_LAST_UPDATED_BY,
353     X_LAST_UPDATE_DATE,
354     X_LAST_UPDATED_BY,
355     X_LAST_UPDATE_LOGIN
356   );
357 
358   open c;
359   fetch c into X_ROWID;
360   if (c%notfound) then
361     close c;
362     raise no_data_found;
363   end if;
364   close c;
365 
366   After_DML (
367     p_action => 'INSERT',
368     x_rowid => X_ROWID);
369 
370 end INSERT_ROW;
371 
372 procedure LOCK_ROW (
373   X_ROWID in VARCHAR2,
374   X_SECONDARY_SCHOOL_CD in VARCHAR2,
375   X_SECONDARY_SCHOOL_NAME in VARCHAR2,
376   X_STATE_CD in VARCHAR2,
377   X_S_SCNDRY_SCHOOL_TYPE in VARCHAR2,
378   X_CLOSED_IND in VARCHAR2
379 ) as
380   cursor c1 is select
381       SECONDARY_SCHOOL_NAME,
382       STATE_CD,
383       S_SCNDRY_SCHOOL_TYPE,
384       CLOSED_IND
385     from IGS_AD_AUS_SEC_ED_SC
386     where ROWID = X_ROWID for update nowait;
387   tlinfo c1%rowtype;
388 
389 begin
390   open c1;
391   fetch c1 into tlinfo;
392   if (c1%notfound) then
393     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
394 IGS_GE_MSG_STACK.ADD;
395     app_exception.raise_exception;
396     close c1;
397     return;
398   end if;
399   close c1;
400 
401   if ( (tlinfo.SECONDARY_SCHOOL_NAME = X_SECONDARY_SCHOOL_NAME)
402       AND (tlinfo.STATE_CD = X_STATE_CD)
403       AND ((tlinfo.S_SCNDRY_SCHOOL_TYPE = X_S_SCNDRY_SCHOOL_TYPE)
404            OR ((tlinfo.S_SCNDRY_SCHOOL_TYPE is null)
405                AND (X_S_SCNDRY_SCHOOL_TYPE is null)))
406       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
407   ) then
408     null;
409   else
410     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
411 IGS_GE_MSG_STACK.ADD;
412     app_exception.raise_exception;
413   end if;
414   return;
415 end LOCK_ROW;
416 
417 procedure UPDATE_ROW (
418   X_ROWID in VARCHAR2,
419   X_SECONDARY_SCHOOL_CD in VARCHAR2,
420   X_SECONDARY_SCHOOL_NAME in VARCHAR2,
421   X_STATE_CD in VARCHAR2,
422   X_S_SCNDRY_SCHOOL_TYPE in VARCHAR2,
423   X_CLOSED_IND in VARCHAR2,
424   X_MODE in VARCHAR2 default 'R'
425   ) as
426     X_LAST_UPDATE_DATE DATE;
427     X_LAST_UPDATED_BY NUMBER;
428     X_LAST_UPDATE_LOGIN NUMBER;
429 begin
430   X_LAST_UPDATE_DATE := SYSDATE;
431   if(X_MODE = 'I') then
432     X_LAST_UPDATED_BY := 1;
433     X_LAST_UPDATE_LOGIN := 0;
434   elsif (X_MODE = 'R') then
435     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
436     if X_LAST_UPDATED_BY is NULL then
437       X_LAST_UPDATED_BY := -1;
438     end if;
439     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
440     if X_LAST_UPDATE_LOGIN is NULL then
441       X_LAST_UPDATE_LOGIN := -1;
442     end if;
443   else
444     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
445     IGS_GE_MSG_STACK.ADD;
446     app_exception.raise_exception;
447   end if;
448 
449   Before_DML(
450    p_action=>'UPDATE',
451    x_rowid=>X_ROWID,
452    x_closed_ind=>X_CLOSED_IND,
453    x_s_scndry_school_type=>X_S_SCNDRY_SCHOOL_TYPE,
454    x_secondary_school_cd=>X_SECONDARY_SCHOOL_CD,
455    x_secondary_school_name=>X_SECONDARY_SCHOOL_NAME,
456    x_state_cd=>X_STATE_CD,
457    x_creation_date=>X_LAST_UPDATE_DATE,
458    x_created_by=>X_LAST_UPDATED_BY,
459    x_last_update_date=>X_LAST_UPDATE_DATE,
460    x_last_updated_by=>X_LAST_UPDATED_BY,
461    x_last_update_login=>X_LAST_UPDATE_LOGIN
462    );
463   update IGS_AD_AUS_SEC_ED_SC set
464     SECONDARY_SCHOOL_NAME = NEW_REFERENCES.SECONDARY_SCHOOL_NAME,
465     STATE_CD = NEW_REFERENCES.STATE_CD,
466     S_SCNDRY_SCHOOL_TYPE = NEW_REFERENCES.S_SCNDRY_SCHOOL_TYPE,
467     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
468     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
469     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
470     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
471   where ROWID = X_ROWID
472   ;
473   if (sql%notfound) then
474     raise no_data_found;
475   end if;
476 
477   After_DML (
478     p_action => 'UPDATE',
479     x_rowid => X_ROWID);
480 
481 end UPDATE_ROW;
482 
483 procedure ADD_ROW (
484   X_ROWID in out NOCOPY VARCHAR2,
485   X_SECONDARY_SCHOOL_CD in VARCHAR2,
486   X_SECONDARY_SCHOOL_NAME in VARCHAR2,
487   X_STATE_CD in VARCHAR2,
488   X_S_SCNDRY_SCHOOL_TYPE in VARCHAR2,
489   X_CLOSED_IND in VARCHAR2,
490   X_MODE in VARCHAR2 default 'R'
491   ) as
492   cursor c1 is select rowid from IGS_AD_AUS_SEC_ED_SC
493      where SECONDARY_SCHOOL_CD = X_SECONDARY_SCHOOL_CD
494   ;
495 begin
496   open c1;
497   fetch c1 into X_ROWID;
498   if (c1%notfound) then
499     close c1;
500     INSERT_ROW (
501      X_ROWID,
502      X_SECONDARY_SCHOOL_CD,
503      X_SECONDARY_SCHOOL_NAME,
504      X_STATE_CD,
505      X_S_SCNDRY_SCHOOL_TYPE,
506      X_CLOSED_IND,
507      X_MODE);
508     return;
509   end if;
510   close c1;
511   UPDATE_ROW (
512    X_ROWID,
513    X_SECONDARY_SCHOOL_CD,
514    X_SECONDARY_SCHOOL_NAME,
515    X_STATE_CD,
516    X_S_SCNDRY_SCHOOL_TYPE,
517    X_CLOSED_IND,
518    X_MODE);
519 end ADD_ROW;
520 
521 procedure DELETE_ROW (
522   X_ROWID in VARCHAR2
523 ) as
524 begin
525 
526   Before_DML (
527     p_action => 'DELETE',
528     x_rowid => X_ROWID);
529 
530   delete from IGS_AD_AUS_SEC_ED_SC
531   where ROWID = X_ROWID;
532   if (sql%notfound) then
533     raise no_data_found;
534   end if;
535 
536   After_DML (
537     p_action => 'DELETE',
538     x_rowid => X_ROWID);
539 
540 end DELETE_ROW;
541 
542 end IGS_AD_AUS_SEC_ED_SC_PKG;