DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_GOV_COUNTRYCD_PKG

Source


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