DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_UNT_OFR_PAT_N_PKG

Source


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