DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_UNIT_CATEGORY_PKG

Source


1 package body IGS_PS_UNIT_CATEGORY_PKG as
2 /* $Header: IGSPI75B.pls 115.6 2002/11/29 02:37:17 nsidana ship $ */
3   l_rowid VARCHAR2(25);
4   old_references IGS_PS_UNIT_CATEGORY_ALL%RowType;
5   new_references IGS_PS_UNIT_CATEGORY_ALL%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_unit_cd IN VARCHAR2 DEFAULT NULL,
11     x_version_number IN NUMBER DEFAULT NULL,
12     x_unit_cat IN VARCHAR2 DEFAULT NULL,
13     x_creation_date IN DATE DEFAULT NULL,
14     x_created_by IN NUMBER DEFAULT NULL,
15     x_last_update_date IN DATE DEFAULT NULL,
16     x_last_updated_by IN NUMBER DEFAULT NULL,
17     x_last_update_login IN NUMBER DEFAULT NULL ,
18     x_org_id IN NUMBER DEFAULT NULL
19   ) AS
20 
21     CURSOR cur_old_ref_values IS
22       SELECT   *
23       FROM     IGS_PS_UNIT_CATEGORY_ALL
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       Close cur_old_ref_values;
36       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
37       IGS_GE_MSG_STACK.ADD;
38       App_Exception.Raise_Exception;
39       Return;
40     END IF;
41     Close cur_old_ref_values;
42 
43     -- Populate New Values.
44     new_references.unit_cd := x_unit_cd;
45     new_references.version_number := x_version_number;
46     new_references.unit_cat := x_unit_cat;
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     new_references.org_id := x_org_id;
58 
59   END Set_Column_Values;
60 
61   PROCEDURE BeforeRowInsertUpdateDelete1(
62     p_inserting IN BOOLEAN DEFAULT FALSE,
63     p_updating IN BOOLEAN DEFAULT FALSE,
64     p_deleting IN BOOLEAN DEFAULT FALSE
65     ) AS
66 	v_unit_cd		IGS_PS_UNIT_CATEGORY_ALL.unit_cd%TYPE;
67 	v_version_number	IGS_PS_UNIT_CATEGORY_ALL.version_number%TYPE;
68 	v_message_name	VARCHAR2(30);
69   BEGIN
70 	-- Set variables.
71 	IF p_deleting THEN
72 		v_unit_cd := old_references.unit_cd;
73 		v_version_number := old_references.version_number;
74 	ELSE -- p_inserting or p_updating
75 		v_unit_cd := new_references.unit_cd;
76 		v_version_number := new_references.version_number;
77 	END IF;
78 	-- Validate the insert/update/delete.
79 	IF  IGS_PS_VAL_UNIT.crsp_val_iud_uv_dtl (
80 			v_unit_cd,
81 			v_version_number,
82 			v_message_name) = FALSE THEN
83 				Fnd_Message.Set_Name('IGS', v_message_name);
84 				IGS_GE_MSG_STACK.ADD;
85 				App_Exception.Raise_Exception;
86 	END IF;
87 	-- Validate IGS_PS_UNIT cat.  IGS_PS_UNIT cat is not updateable.
88 	IF p_inserting THEN
89 		IF IGS_PS_VAL_UC.crsp_val_uc_unit_cat (
90 				new_references.unit_cat,
91 				v_message_name) = FALSE THEN
92 					Fnd_Message.Set_Name('IGS', v_message_name);
93 					IGS_GE_MSG_STACK.ADD;
94 					App_Exception.Raise_Exception;
95 		END IF;
96 	END IF;
97 
98 
99   END BeforeRowInsertUpdateDelete1;
100 
101 PROCEDURE Check_Constraints(
102 				Column_Name 	IN	VARCHAR2	DEFAULT NULL,
103 				Column_Value 	IN	VARCHAR2	DEFAULT NULL)
104 AS
105 BEGIN
106 
107 	IF Column_Name IS NULL Then
108 		NULL;
109 	ELSIF Upper(Column_Name)='UNIT_CAT' Then
110 		New_References.Unit_Cat := Column_Value;
111 	ELSIF Upper(Column_Name)='UNIT_CD' Then
112 		New_References.Unit_Cd := Column_Value;
113 	END IF;
114 
115 	IF Upper(Column_Name)='UNIT_CAT' OR Column_Name IS NULL Then
116 		IF New_References.Unit_Cat <> UPPER(New_References.Unit_Cat) Then
117 			        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
118 			        IGS_GE_MSG_STACK.ADD;
119 			        App_Exception.Raise_Exception;
120 		END IF;
121 	END IF;
122 
123 	IF Upper(Column_Name)='UNIT_CD' OR Column_Name IS NULL Then
124 		IF New_References.Unit_Cd <> UPPER(New_References.Unit_Cd) Then
125 			        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
126 			        IGS_GE_MSG_STACK.ADD;
127 			        App_Exception.Raise_Exception;
128 		END IF;
129 	END IF;
130 
131 END Check_Constraints;
132 
133   PROCEDURE Check_Parent_Existance AS
134   BEGIN
135 
136     IF (((old_references.unit_cat = new_references.unit_cat)) OR
137         ((new_references.unit_cat IS  NULL))) THEN
138       NULL;
139     ELSE
140       IF NOT IGS_PS_UNIT_CAT_PKG.Get_PK_For_Validation (
141         new_references.unit_cat) THEN
142 				  Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
143 				  IGS_GE_MSG_STACK.ADD;
144 			        App_Exception.Raise_Exception;
145 	END IF;
146     END IF;
147 
148     IF (((old_references.unit_cd = new_references.unit_cd) AND
149          (old_references.version_number = new_references.version_number)) OR
150         ((new_references.unit_cd IS NULL) OR
151          (new_references.version_number IS NULL))) THEN
152       NULL;
153     ELSE
154       IF NOT IGS_PS_UNIT_VER_PKG.Get_PK_For_Validation (
155         new_references.unit_cd,
156         new_references.version_number
157         ) THEN
158 				  Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
159 				  IGS_GE_MSG_STACK.ADD;
160 			        App_Exception.Raise_Exception;
161 	END IF;
162 
163     END IF;
164 
165   END Check_Parent_Existance;
166 
167   FUNCTION Get_PK_For_Validation (
168     x_unit_cd IN VARCHAR2,
169     x_version_number IN NUMBER,
170     x_unit_cat IN VARCHAR2
171     ) RETURN BOOLEAN AS
172 
173     CURSOR cur_rowid IS
174       SELECT   rowid
175       FROM     IGS_PS_UNIT_CATEGORY_ALL
176       WHERE    unit_cd = x_unit_cd
177       AND      version_number = x_version_number
178       AND      unit_cat = x_unit_cat
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_UNIT_CAT (
198     x_unit_cat IN VARCHAR2
199     ) AS
200 
201     CURSOR cur_rowid IS
202       SELECT   rowid
203       FROM     IGS_PS_UNIT_CATEGORY_ALL
204       WHERE    unit_cat = x_unit_cat ;
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_UC_UCA_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_UNIT_CAT;
222 
223   PROCEDURE GET_FK_IGS_PS_UNIT_VER (
224     x_unit_cd IN VARCHAR2,
225     x_version_number IN NUMBER
226     ) AS
227 
228     CURSOR cur_rowid IS
229       SELECT   rowid
230       FROM     IGS_PS_UNIT_CATEGORY_ALL
231       WHERE    unit_cd = x_unit_cd
232       AND      version_number = x_version_number ;
233 
234     lv_rowid cur_rowid%RowType;
235 
236   BEGIN
237 
238     Open cur_rowid;
239     Fetch cur_rowid INTO lv_rowid;
240     IF (cur_rowid%FOUND) THEN
241       Close cur_rowid;
242       Fnd_Message.Set_Name ('IGS', 'IGS_PS_UC_UV_FK');
243       IGS_GE_MSG_STACK.ADD;
244       App_Exception.Raise_Exception;
245       Return;
246     END IF;
247     Close cur_rowid;
248 
249   END GET_FK_IGS_PS_UNIT_VER;
250 
251   PROCEDURE Before_DML (
252     p_action IN VARCHAR2,
253     x_rowid IN VARCHAR2 DEFAULT NULL,
254     x_unit_cd IN VARCHAR2 DEFAULT NULL,
255     x_version_number IN NUMBER DEFAULT NULL,
256     x_unit_cat IN VARCHAR2 DEFAULT NULL,
257     x_creation_date IN DATE DEFAULT NULL,
258     x_created_by IN NUMBER DEFAULT NULL,
259     x_last_update_date IN DATE DEFAULT NULL,
260     x_last_updated_by IN NUMBER DEFAULT NULL,
261     x_last_update_login IN NUMBER DEFAULT NULL,
262     x_org_id IN NUMBER DEFAULT NULL
263   ) AS
264   BEGIN
265 
266     Set_Column_Values (
267       p_action,
268       x_rowid,
269       x_unit_cd,
270       x_version_number,
271       x_unit_cat,
272       x_creation_date,
273       x_created_by,
274       x_last_update_date,
275       x_last_updated_by,
276       x_last_update_login ,
277       x_org_id
278     );
279 
280     IF (p_action = 'INSERT') THEN
281       -- Call all the procedures related to Before Insert.
282       BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
283         IF Get_PK_For_Validation (New_References.unit_cd,
284 					    New_References.version_number ,
285 					    New_References.unit_cat) THEN
286 			Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
287 			IGS_GE_MSG_STACK.ADD;
288 		      App_Exception.Raise_Exception;
289 	   END IF;
290 	   Check_Constraints;
291         Check_Parent_Existance;
292     ELSIF (p_action = 'UPDATE') THEN
293       -- Call all the procedures related to Before Update.
294       BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
295       Check_Constraints;
296       Check_Parent_Existance;
297     ELSIF (p_action = 'DELETE') THEN
298       -- Call all the procedures related to Before Delete.
299       BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
300 	Check_Constraints;
301     ELSIF (p_action = 'VALIDATE_INSERT') THEN
302 	    IF Get_PK_For_Validation (New_References.unit_cd,
303 					    New_References.version_number ,
304 					    New_References.unit_cat) THEN
305 			Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
306 			IGS_GE_MSG_STACK.ADD;
307 		      App_Exception.Raise_Exception;
308 	   END IF;
309 	   Check_Constraints;
310    ELSIF (p_action = 'VALIDATE_UPDATE') THEN
311 	   Check_Constraints;
312 
313     END IF;
314 
315   END Before_DML;
316 
317   PROCEDURE After_DML (
318     p_action IN VARCHAR2,
319     x_rowid IN VARCHAR2
320   ) AS
321   BEGIN
322 
323     l_rowid := x_rowid;
324 
325 
326   END After_DML;
327 
328 procedure INSERT_ROW (
329   X_ROWID in out NOCOPY VARCHAR2,
330   X_UNIT_CD in VARCHAR2,
331   X_VERSION_NUMBER in NUMBER,
332   X_UNIT_CAT in VARCHAR2,
333   X_MODE in VARCHAR2 default 'R',
334   x_ORG_ID in NUMBER
335   ) AS
336     cursor C is select ROWID from IGS_PS_UNIT_CATEGORY_ALL
337       where UNIT_CD = X_UNIT_CD
338       and VERSION_NUMBER = X_VERSION_NUMBER
339       and UNIT_CAT = X_UNIT_CAT;
340     X_LAST_UPDATE_DATE DATE;
341     X_LAST_UPDATED_BY NUMBER;
342     X_LAST_UPDATE_LOGIN NUMBER;
343 begin
344   X_LAST_UPDATE_DATE := SYSDATE;
345   if(X_MODE = 'I') then
346     X_LAST_UPDATED_BY := 1;
347     X_LAST_UPDATE_LOGIN := 0;
348   elsif (X_MODE = 'R') then
349     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
350     if X_LAST_UPDATED_BY is NULL then
351       X_LAST_UPDATED_BY := -1;
352     end if;
353     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
354     if X_LAST_UPDATE_LOGIN is NULL then
355       X_LAST_UPDATE_LOGIN := -1;
356     end if;
357   else
358     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
359     IGS_GE_MSG_STACK.ADD;
360     app_exception.raise_exception;
361   end if;
362   Before_DML(
363   p_action => 'INSERT',
364   x_rowid => X_ROWID,
365   x_unit_cd => X_UNIT_CD,
366   x_version_number => X_VERSION_NUMBER,
367   x_unit_cat => X_UNIT_CAT,
368   x_creation_date => X_LAST_UPDATE_DATE,
369   x_created_by => X_LAST_UPDATED_BY,
370   x_last_update_date => X_LAST_UPDATE_DATE,
371   x_last_updated_by => X_LAST_UPDATED_BY,
372   x_last_update_login => X_LAST_UPDATE_LOGIN,
373   x_org_id => igs_ge_gen_003.get_org_id
374   );
375 
376   insert into IGS_PS_UNIT_CATEGORY_ALL (
377     UNIT_CD,
378     VERSION_NUMBER,
379     UNIT_CAT,
380     CREATION_DATE,
381     CREATED_BY,
382     LAST_UPDATE_DATE,
383     LAST_UPDATED_BY,
384     LAST_UPDATE_LOGIN,
385     ORG_ID
386   ) values (
387     NEW_REFERENCES.UNIT_CD,
388     NEW_REFERENCES.VERSION_NUMBER,
389     NEW_REFERENCES.UNIT_CAT,
390     X_LAST_UPDATE_DATE,
391     X_LAST_UPDATED_BY,
392     X_LAST_UPDATE_DATE,
393     X_LAST_UPDATED_BY,
394     X_LAST_UPDATE_LOGIN,
395     NEW_REFERENCES.ORG_ID
396   );
397 
398   open c;
399   fetch c into X_ROWID;
400   if (c%notfound) then
401     close c;
402     raise no_data_found;
403   end if;
404   close c;
405   After_DML (
406      p_action => 'INSERT',
407      x_rowid => X_ROWID
408     );
409 
410 end INSERT_ROW;
411 
412 procedure LOCK_ROW (
413   X_ROWID IN VARCHAR2,
414   X_UNIT_CD in VARCHAR2,
415   X_VERSION_NUMBER in NUMBER,
416   X_UNIT_CAT in VARCHAR2
417 
418 ) AS
419   cursor c1 is select ROWID
420     from IGS_PS_UNIT_CATEGORY_ALL
421     where ROWID = X_ROWID
422     for update nowait;
423   tlinfo c1%rowtype;
424 
425 begin
426   open c1;
427   fetch c1 into tlinfo;
428   if (c1%notfound) then
429     close c1;
430     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
431     IGS_GE_MSG_STACK.ADD;
432     app_exception.raise_exception;
433     return;
434   end if;
435   close c1;
436 
437   return;
438 end LOCK_ROW;
439 
440 procedure DELETE_ROW (
441   X_ROWID in VARCHAR2
442 ) AS
443 begin
444    Before_DML (
445      p_action => 'DELETE',
446      x_rowid => X_ROWID
447     );
448   delete from IGS_PS_UNIT_CATEGORY_ALL
449   where ROWID = X_ROWID;
450   if (sql%notfound) then
451     raise no_data_found;
452   end if;
453   After_DML (
454      p_action => 'DELETE',
455      x_rowid => X_ROWID
456     );
457 
458 end DELETE_ROW;
459 
460 end IGS_PS_UNIT_CATEGORY_PKG;