DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_OS_SEC_EDU_QF_PKG

Source


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