DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_SEO_CLASS_CD_PKG

Source


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