DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_GOV_ABRGRESCD_PKG

Source


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