DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AV_STND_ALT_UNIT_PKG

Source


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