DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_CAND_SEO_CLS_PKG

Source


1 package body IGS_RE_CAND_SEO_CLS_PKG as
2 /* $Header: IGSRI02B.pls 120.1 2005/07/04 00:40:58 appldev ship $ */
3   -------------------------------------------------------------------------------------------
4   --Change History:
5   --Who         When            What
6   --smadathi    24-AUG-2001     Bug No. 1956374 .The call to igs_re_val_csc.genp_val_sdtt_sess
7   --                            is changed to igs_as_val_suaap.genp_val_sdtt_sess.
8   -------------------------------------------------------------------------------------------
9   l_rowid VARCHAR2(25);
10   old_references IGS_RE_CAND_SEO_CLS%RowType;
11   new_references IGS_RE_CAND_SEO_CLS%RowType;
12 
13   PROCEDURE Set_Column_Values (
14     p_action IN VARCHAR2,
15     x_rowid IN VARCHAR2 DEFAULT NULL,
16     x_person_id IN NUMBER DEFAULT NULL,
17     x_ca_sequence_number IN NUMBER DEFAULT NULL,
18     x_seo_class_cd IN VARCHAR2 DEFAULT NULL,
19     x_percentage IN NUMBER DEFAULT NULL,
20     x_creation_date IN DATE DEFAULT NULL,
21     x_created_by IN NUMBER DEFAULT NULL,
22     x_last_update_date IN DATE DEFAULT NULL,
23     x_last_updated_by IN NUMBER DEFAULT NULL,
24     x_last_update_login IN NUMBER DEFAULT NULL
25   ) AS
26 
27     CURSOR cur_old_ref_values IS
28       SELECT   *
29       FROM     IGS_RE_CAND_SEO_CLS
30       WHERE    rowid = x_rowid;
31 
32   BEGIN
33 
34     l_rowid := x_rowid;
35 
36     -- Code for setting the Old and New Reference Values.
37     -- Populate Old Values.
38     Open cur_old_ref_values;
39     Fetch cur_old_ref_values INTO old_references;
40     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
41       Close cur_old_ref_values;
42       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
43       IGS_GE_MSG_STACK.ADD;
44       App_Exception.Raise_Exception;
45       Return;
46     END IF;
47     Close cur_old_ref_values;
48 
49     -- Populate New Values.
50     new_references.person_id := x_person_id;
51     new_references.ca_sequence_number := x_ca_sequence_number;
52     new_references.seo_class_cd := x_seo_class_cd;
53     new_references.percentage := x_percentage;
54     IF (p_action = 'UPDATE') THEN
55       new_references.creation_date := old_references.creation_date;
56       new_references.created_by := old_references.created_by;
57     ELSE
58       new_references.creation_date := x_creation_date;
59       new_references.created_by := x_created_by;
60     END IF;
61     new_references.last_update_date := x_last_update_date;
62     new_references.last_updated_by := x_last_updated_by;
63     new_references.last_update_login := x_last_update_login;
64 
65   END Set_Column_Values;
66 
67   PROCEDURE BeforeRowInsertUpdateDelete1(
68     p_inserting IN BOOLEAN DEFAULT FALSE,
69     p_updating IN BOOLEAN DEFAULT FALSE,
70     p_deleting IN BOOLEAN DEFAULT FALSE
71     ) AS
72 	v_message_name		VARCHAR2(30);
73   BEGIN
74 	-- Turn off trigger validation when performing insert of IGS_RE_CANDIDATURE details
75 	-- as a result of IGS_PS_COURSE transfer
76 	IF igs_as_val_suaap.genp_val_sdtt_sess('ENRP_INS_CA_TRNSFR') THEN
77 		IF p_inserting  THEN
78 			-- Validate socio-economic objective class code.
79 			IF IGS_RE_VAL_CSC.resp_val_csc_seocc (
80 				new_references.person_id,
81 				new_references.ca_sequence_number,
82 				new_references.seo_class_cd,
83 				v_message_name) = FALSE THEN
84 					Fnd_Message.Set_Name ('IGS', v_message_name);
85 					IGS_GE_MSG_STACK.ADD;
86 					App_Exception.Raise_Exception;
87 			END IF;
88 		END IF;
89 		IF p_inserting OR
90 			p_updating OR
91 			p_deleting THEN
92 			-- Validate updates are allowed
93 /*
94 ||  Bug ID 1956374 - Removal of Duplicate Program Units from OSS.
95 ||  Changed the reference of "IGS_RE_VAL_CSC.RESP_VAL_CA_CHILDUPD" to program unit "IGS_RE_VAL_CAH.RESP_VAL_CA_CHILDUPD". -- kdande
96 */
97 			IF IGS_RE_VAL_CAH.resp_val_ca_childupd (
98 				new_references.person_id,
99 				new_references.ca_sequence_number,
100 				v_message_name) = FALSE THEN
101 					Fnd_Message.Set_Name ('IGS', v_message_name);
102 					IGS_GE_MSG_STACK.ADD;
103 					App_Exception.Raise_Exception;
104 			END IF;
105 		END IF;
106 	END IF;
107 
108 
109   END BeforeRowInsertUpdateDelete1;
110 
111   PROCEDURE Check_Constraints (
112     Column_Name in VARCHAR2 DEFAULT NULL ,
113     Column_Value in VARCHAR2 DEFAULT NULL
114   ) AS
115   BEGIN
116   IF Column_Name is null then
117    NULL;
118   ELSIF upper(Column_name) = 'SEO_CLASS_CD' THEN
119    new_references.SEO_CLASS_CD := COLUMN_VALUE ;
120   ELSIF upper(Column_name) = 'PERCENTAGE' THEN
121    new_references.PERCENTAGE := IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
122   ELSIF upper(Column_name) = 'CA_SEQUENCE_NUMBER' THEN
123    new_references.CA_SEQUENCE_NUMBER := IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
124   END IF;
125 
126   IF upper(column_name) = 'SEO_CLASS_CD' OR COLUMN_NAME IS NULL THEN
127     IF new_references.SEO_CLASS_CD <> upper(new_references.SEO_CLASS_CD) then
128 	  Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
129 	  IGS_GE_MSG_STACK.ADD;
130 	  App_Exception.Raise_Exception ;
131 	END IF;
132   END IF;
133   IF upper(column_name) = 'PERCENTAGE' OR COLUMN_NAME IS NULL THEN
134     IF new_references.PERCENTAGE < 1 OR new_references.PERCENTAGE > 100 then
135 	  Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
136 	  IGS_GE_MSG_STACK.ADD;
137 	  App_Exception.Raise_Exception ;
138 	END IF;
139   END IF;
140   IF upper(column_name) = 'CA_SEQUENCE_NUMBER' OR COLUMN_NAME IS NULL THEN
141     IF new_references.CA_SEQUENCE_NUMBER < 1 OR new_references.CA_SEQUENCE_NUMBER > 9999999 then
142 	  Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
143 	  IGS_GE_MSG_STACK.ADD;
144 	  App_Exception.Raise_Exception ;
145 	END IF;
146   END IF;
147  END Check_Constraints ;
148 
149   PROCEDURE Check_Parent_Existance AS
150   BEGIN
151 
152     IF (((old_references.person_id = new_references.person_id) AND
153          (old_references.ca_sequence_number = new_references.ca_sequence_number)) OR
154         ((new_references.person_id IS NULL) OR
155          (new_references.ca_sequence_number IS NULL))) THEN
156       NULL;
157     ELSE
158       IF NOT IGS_RE_CANDIDATURE_PKG.Get_PK_For_Validation (
159         new_references.person_id,
160         new_references.ca_sequence_number
161         ) THEN
162      	     Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
163      	     IGS_GE_MSG_STACK.ADD;
164              App_Exception.Raise_Exception;
165        END IF;
166     END IF;
167 
168     IF (((old_references.SEO_CLASS_CD = new_references.seo_class_cd)) OR
169         ((new_references.seo_class_cd IS NULL))) THEN
170       NULL;
171     ELSE
172       IF NOT IGS_RE_SEO_CLASS_CD_PKG.Get_PK_For_Validation (
173         new_references.seo_class_cd
174         ) THEN
175      	     Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
176      	     IGS_GE_MSG_STACK.ADD;
177              App_Exception.Raise_Exception;
178        END IF;
179     END IF;
180   END Check_Parent_Existance;
181 
182   FUNCTION Get_PK_For_Validation (
183     x_person_id IN NUMBER,
184     x_ca_sequence_number IN NUMBER,
185     x_seo_class_cd IN VARCHAR2
186     ) RETURN BOOLEAN AS
187 
188     CURSOR cur_rowid IS
189       SELECT   rowid
190       FROM     IGS_RE_CAND_SEO_CLS
191       WHERE    person_id = x_person_id
192       AND      ca_sequence_number = x_ca_sequence_number
193       AND      seo_class_cd = x_seo_class_cd
194       FOR UPDATE NOWAIT;
195 
196     lv_rowid cur_rowid%RowType;
197 
198   BEGIN
199 
200     Open cur_rowid;
201     Fetch cur_rowid INTO lv_rowid;
202     IF (cur_rowid%FOUND) THEN
203 	Close cur_rowid;
204  	RETURN(TRUE);
205     ELSE
206         Close cur_rowid;
207         RETURN(FALSE);
208     END IF;
209   END Get_PK_For_Validation;
210 
211   PROCEDURE GET_FK_IGS_RE_CANDIDATURE (
212     x_person_id IN NUMBER,
213     x_sequence_number IN NUMBER
214     ) AS
215 
216     CURSOR cur_rowid IS
217       SELECT   rowid
218       FROM     IGS_RE_CAND_SEO_CLS
219       WHERE    person_id = x_person_id
220       AND      ca_sequence_number = x_sequence_number ;
221 
222     lv_rowid cur_rowid%RowType;
223 
224   BEGIN
225 
226     Open cur_rowid;
227     Fetch cur_rowid INTO lv_rowid;
228     IF (cur_rowid%FOUND) THEN
229       Close cur_rowid;
230       Fnd_Message.Set_Name ('IGS', 'IGS_RE_CSC_CA_FK');
231       IGS_GE_MSG_STACK.ADD;
232       App_Exception.Raise_Exception;
233       Return;
234     END IF;
235     Close cur_rowid;
236 
237   END GET_FK_IGS_RE_CANDIDATURE;
238 
239   PROCEDURE GET_FK_IGS_RE_SEO_CLASS_CD (
240     x_seo_class_cd IN VARCHAR2
241     ) AS
242 
243     CURSOR cur_rowid IS
244       SELECT   rowid
245       FROM     IGS_RE_CAND_SEO_CLS
246       WHERE    seo_class_cd = x_seo_class_cd ;
247 
248     lv_rowid cur_rowid%RowType;
249 
250   BEGIN
251 
252     Open cur_rowid;
253     Fetch cur_rowid INTO lv_rowid;
254     IF (cur_rowid%FOUND) THEN
255       Close cur_rowid;
256       Fnd_Message.Set_Name ('IGS', 'IGS_RE_CSC_SCC_FK');
257       IGS_GE_MSG_STACK.ADD;
258       App_Exception.Raise_Exception;
259       Return;
260     END IF;
261     Close cur_rowid;
262 
263   END GET_FK_IGS_RE_SEO_CLASS_CD;
264 
265   PROCEDURE Before_DML (
266     p_action IN VARCHAR2,
267     x_rowid IN VARCHAR2 DEFAULT NULL,
268     x_person_id IN NUMBER DEFAULT NULL,
269     x_ca_sequence_number IN NUMBER DEFAULT NULL,
270     x_seo_class_cd IN VARCHAR2 DEFAULT NULL,
271     x_percentage IN NUMBER DEFAULT NULL,
272     x_creation_date IN DATE DEFAULT NULL,
273     x_created_by IN NUMBER DEFAULT NULL,
274     x_last_update_date IN DATE DEFAULT NULL,
275     x_last_updated_by IN NUMBER DEFAULT NULL,
276     x_last_update_login IN NUMBER  DEFAULT NULL
277   ) AS
278   BEGIN
279 
280     Set_Column_Values (
281       p_action,
282       x_rowid,
283       x_person_id,
284       x_ca_sequence_number,
285       x_seo_class_cd,
286       x_percentage,
287       x_creation_date,
288       x_created_by,
289       x_last_update_date,
290       x_last_updated_by,
291       x_last_update_login
292     );
293 
294     IF (p_action = 'INSERT') THEN
295       -- Call all the procedures related to Before Insert.
296       BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
297       IF Get_PK_For_Validation (
298 	    new_references.person_id,
299 	    new_references.ca_sequence_number,
300 	    new_references.seo_class_cd
301       ) THEN
302 	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
303 	 IGS_GE_MSG_STACK.ADD;
304          App_Exception.Raise_Exception;
305      END IF;
306       Check_Constraints;
307       Check_Parent_Existance;
308     ELSIF (p_action = 'UPDATE') THEN
309       -- Call all the procedures related to Before Update.
310       BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
311       Check_Constraints;
312       Check_Parent_Existance;
313     ELSIF (p_action = 'DELETE') THEN
314       -- Call all the procedures related to Before Delete.
315       BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
316     ELSIF (p_action = 'VALIDATE_INSERT') THEN
317       IF Get_PK_For_Validation (
318 	    new_references.person_id,
319 	    new_references.ca_sequence_number,
320 	    new_references.seo_class_cd
321       ) THEN
322 	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
323 	 IGS_GE_MSG_STACK.ADD;
324          App_Exception.Raise_Exception;
325      END IF;
326       Check_Constraints;
327     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
328       Check_Constraints;
329     END IF;
330 
331   END Before_DML;
332 
333 procedure INSERT_ROW (
334   X_ROWID in out NOCOPY VARCHAR2,
335   X_PERSON_ID in NUMBER,
336   X_CA_SEQUENCE_NUMBER in NUMBER,
337   X_SEO_CLASS_CD in VARCHAR2,
338   X_PERCENTAGE in NUMBER,
339   X_MODE in VARCHAR2 default 'R'
340   ) as
341     cursor C is select ROWID from IGS_RE_CAND_SEO_CLS
342       where PERSON_ID = X_PERSON_ID
343       and CA_SEQUENCE_NUMBER = X_CA_SEQUENCE_NUMBER
344       and SEO_CLASS_CD = X_SEO_CLASS_CD;
345     X_LAST_UPDATE_DATE DATE;
346     X_LAST_UPDATED_BY NUMBER;
347     X_LAST_UPDATE_LOGIN NUMBER;
348 begin
349   X_LAST_UPDATE_DATE := SYSDATE;
350   if(X_MODE = 'I') then
351     X_LAST_UPDATED_BY := 1;
352     X_LAST_UPDATE_LOGIN := 0;
353   elsif (X_MODE IN ('R', 'S')) then
354     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
355     if X_LAST_UPDATED_BY is NULL then
356       X_LAST_UPDATED_BY := -1;
357     end if;
358     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
359     if X_LAST_UPDATE_LOGIN is NULL then
360       X_LAST_UPDATE_LOGIN := -1;
361     end if;
362   else
363     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
364     IGS_GE_MSG_STACK.ADD;
365     app_exception.raise_exception;
366   end if;
367 
368   Before_DML (
369     p_action => 'INSERT',
370     x_rowid => X_ROWID,
371     x_person_id => X_PERSON_ID,
372     x_ca_sequence_number => X_CA_SEQUENCE_NUMBER,
373     x_seo_class_cd => X_SEO_CLASS_CD,
374     x_percentage => X_PERCENTAGE,
375     x_created_by => X_LAST_UPDATED_BY ,
376     x_creation_date => X_LAST_UPDATE_DATE,
377     x_last_updated_by => X_LAST_UPDATED_BY,
378     x_last_update_date => X_LAST_UPDATE_DATE,
379     x_last_update_login => X_LAST_UPDATE_LOGIN
380   );
381 
382   IF (x_mode = 'S') THEN
383     igs_sc_gen_001.set_ctx('R');
384   END IF;
385   insert into IGS_RE_CAND_SEO_CLS (
386     PERSON_ID,
387     CA_SEQUENCE_NUMBER,
388     SEO_CLASS_CD,
389     PERCENTAGE,
390     CREATION_DATE,
391     CREATED_BY,
392     LAST_UPDATE_DATE,
393     LAST_UPDATED_BY,
394     LAST_UPDATE_LOGIN
395   ) values (
396     NEW_REFERENCES.PERSON_ID,
397     NEW_REFERENCES.CA_SEQUENCE_NUMBER,
398     NEW_REFERENCES.SEO_CLASS_CD,
399     NEW_REFERENCES.PERCENTAGE,
400     X_LAST_UPDATE_DATE,
401     X_LAST_UPDATED_BY,
402     X_LAST_UPDATE_DATE,
403     X_LAST_UPDATED_BY,
404     X_LAST_UPDATE_LOGIN
405   );
406  IF (x_mode = 'S') THEN
407     igs_sc_gen_001.unset_ctx('R');
408   END IF;
409 
410 
411   open c;
412   fetch c into X_ROWID;
413   if (c%notfound) then
414     close c;
415     raise no_data_found;
416   end if;
417   close c;
418 EXCEPTION
419   WHEN OTHERS THEN
420     IF (SQLCODE IN (-28115, -28113, -28111)) THEN
421       fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
422       fnd_message.set_token ('ERR_CD', SQLCODE);
423       igs_ge_msg_stack.add;
424       igs_sc_gen_001.unset_ctx('R');
425       app_exception.raise_exception;
426     ELSE
427       igs_sc_gen_001.unset_ctx('R');
428       RAISE;
429     END IF;
430 
431 end INSERT_ROW;
432 
433 procedure LOCK_ROW (
434   X_ROWID in VARCHAR2,
435   X_PERSON_ID in NUMBER,
436   X_CA_SEQUENCE_NUMBER in NUMBER,
437   X_SEO_CLASS_CD in VARCHAR2,
438   X_PERCENTAGE in NUMBER
439 ) as
440   cursor c1 is select
441       PERCENTAGE
442     from IGS_RE_CAND_SEO_CLS
443     where ROWID = X_ROWID
444     for update nowait;
445   tlinfo c1%rowtype;
446 
447 begin
448   open c1;
449   fetch c1 into tlinfo;
450   if (c1%notfound) then
451     close c1;
452     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
453     app_exception.raise_exception;
454     return;
455   end if;
456   close c1;
457 
458   if ( (tlinfo.PERCENTAGE = X_PERCENTAGE)
459   ) then
460     null;
461   else
462     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
463     app_exception.raise_exception;
464   end if;
465   return;
466 end LOCK_ROW;
467 
468 procedure UPDATE_ROW (
469   X_ROWID in VARCHAR2,
470   X_PERSON_ID in NUMBER,
471   X_CA_SEQUENCE_NUMBER in NUMBER,
472   X_SEO_CLASS_CD in VARCHAR2,
473   X_PERCENTAGE in NUMBER,
474   X_MODE in VARCHAR2 default 'R'
475   ) as
476     X_LAST_UPDATE_DATE DATE;
477     X_LAST_UPDATED_BY NUMBER;
478     X_LAST_UPDATE_LOGIN NUMBER;
479 begin
480   X_LAST_UPDATE_DATE := SYSDATE;
481   if(X_MODE = 'I') then
482     X_LAST_UPDATED_BY := 1;
483     X_LAST_UPDATE_LOGIN := 0;
484   elsif (X_MODE IN ('R', 'S')) then
485     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
486     if X_LAST_UPDATED_BY is NULL then
487       X_LAST_UPDATED_BY := -1;
488     end if;
489     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
490     if X_LAST_UPDATE_LOGIN is NULL then
491       X_LAST_UPDATE_LOGIN := -1;
492     end if;
493   else
494     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
495     IGS_GE_MSG_STACK.ADD;
496     app_exception.raise_exception;
497   end if;
498 
499   Before_DML (
500     p_action => 'UPDATE',
501     x_rowid => X_ROWID,
502     x_person_id => X_PERSON_ID,
503     x_ca_sequence_number => X_CA_SEQUENCE_NUMBER,
504     x_seo_class_cd => X_SEO_CLASS_CD,
505     x_percentage => X_PERCENTAGE,
506     x_created_by => X_LAST_UPDATED_BY ,
507     x_creation_date => X_LAST_UPDATE_DATE,
508     x_last_updated_by => X_LAST_UPDATED_BY,
509     x_last_update_date => X_LAST_UPDATE_DATE,
510     x_last_update_login => X_LAST_UPDATE_LOGIN
511   );
512 
513   IF (x_mode = 'S') THEN
514     igs_sc_gen_001.set_ctx('R');
515   END IF;
516   update IGS_RE_CAND_SEO_CLS set
517     PERCENTAGE = NEW_REFERENCES.PERCENTAGE,
518     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
519     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
520     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
521   where ROWID = X_ROWID;
522 
523   if (sql%notfound) then
524      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
525      igs_ge_msg_stack.add;
526      igs_sc_gen_001.unset_ctx('R');
527      app_exception.raise_exception;
528  end if;
529  IF (x_mode = 'S') THEN
530     igs_sc_gen_001.unset_ctx('R');
531   END IF;
532 
533 
534 EXCEPTION
535   WHEN OTHERS THEN
536     IF (SQLCODE = (-28115)) THEN
537       fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
538       fnd_message.set_token ('ERR_CD', SQLCODE);
539       igs_ge_msg_stack.add;
540       igs_sc_gen_001.unset_ctx('R');
541       app_exception.raise_exception;
542     ELSE
543       igs_sc_gen_001.unset_ctx('R');
544       RAISE;
545     END IF;
546 
547 end UPDATE_ROW;
548 
549 procedure ADD_ROW (
550   X_ROWID in out NOCOPY VARCHAR2,
551   X_PERSON_ID in NUMBER,
552   X_CA_SEQUENCE_NUMBER in NUMBER,
553   X_SEO_CLASS_CD in VARCHAR2,
554   X_PERCENTAGE in NUMBER,
555   X_MODE in VARCHAR2 default 'R'
556   ) as
557   cursor c1 is select rowid from IGS_RE_CAND_SEO_CLS
558      where PERSON_ID = X_PERSON_ID
559      and CA_SEQUENCE_NUMBER = X_CA_SEQUENCE_NUMBER
560      and SEO_CLASS_CD = X_SEO_CLASS_CD
561   ;
562 begin
563   open c1;
564   fetch c1 into X_ROWID;
565   if (c1%notfound) then
566     close c1;
567     INSERT_ROW (
568      X_ROWID,
569      X_PERSON_ID,
570      X_CA_SEQUENCE_NUMBER,
571      X_SEO_CLASS_CD,
572      X_PERCENTAGE,
573      X_MODE);
574     return;
575   end if;
576   close c1;
577   UPDATE_ROW (
578    X_ROWID,
579    X_PERSON_ID,
580    X_CA_SEQUENCE_NUMBER,
581    X_SEO_CLASS_CD,
582    X_PERCENTAGE,
583    X_MODE);
584 end ADD_ROW;
585 
586 procedure DELETE_ROW (
587   X_ROWID in VARCHAR2,
588   x_mode IN VARCHAR2
589 ) as
590 begin
591   Before_DML (
592     p_action => 'DELETE',
593     x_rowid => X_ROWID
594    );
595 
596   IF (x_mode = 'S') THEN
597     igs_sc_gen_001.set_ctx('R');
598   END IF;
599   delete from IGS_RE_CAND_SEO_CLS
600   where ROWID = X_ROWID;
601   if (sql%notfound) then
602      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
603      igs_ge_msg_stack.add;
604      igs_sc_gen_001.unset_ctx('R');
605      app_exception.raise_exception;
606  end if;
607  IF (x_mode = 'S') THEN
608     igs_sc_gen_001.unset_ctx('R');
609   END IF;
610 
611 
612 end DELETE_ROW;
613 
614 end IGS_RE_CAND_SEO_CLS_PKG;