DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_EN_UNIT_SET_CAT_PKG

Source


1 package body IGS_EN_UNIT_SET_CAT_PKG AS
2 /* $Header: IGSEI02B.pls 115.5 2003/03/25 08:42:08 nalkumar ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_EN_UNIT_SET_CAT%RowType;
6   new_references IGS_EN_UNIT_SET_CAT%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_unit_set_cat IN VARCHAR2 DEFAULT NULL,
12     x_description IN VARCHAR2 DEFAULT NULL,
13     x_s_unit_set_cat IN VARCHAR2 DEFAULT NULL,
14     x_rank IN NUMBER DEFAULT NULL,
15     x_closed_ind IN VARCHAR2 DEFAULT NULL,
16     x_creation_date IN DATE DEFAULT NULL,
17     x_created_by IN NUMBER DEFAULT NULL,
18     x_last_update_date IN DATE DEFAULT NULL,
19     x_last_updated_by IN NUMBER DEFAULT NULL,
20     x_last_update_login IN NUMBER DEFAULT NULL
21   )AS
22 
23     CURSOR cur_old_ref_values IS
24       SELECT   *
25       FROM     IGS_EN_UNIT_SET_CAT
26       WHERE    rowid = x_rowid;
27 
28   BEGIN
29 
30     l_rowid := x_rowid;
31 
32     -- Code for setting the Old and New Reference Values.
33     -- Populate Old Values.
34     Open cur_old_ref_values;
35     Fetch cur_old_ref_values INTO old_references;
36     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
37       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38 IGS_GE_MSG_STACK.ADD;
39       Close cur_old_ref_values;
40       App_Exception.Raise_Exception;
41       Return;
42     END IF;
43     Close cur_old_ref_values;
44 
45     -- Populate New Values.
46     new_references.unit_set_cat := x_unit_set_cat;
47     new_references.description := x_description;
48     new_references.s_unit_set_cat := x_s_unit_set_cat;
49     new_references.rank := x_rank;
50     new_references.closed_ind := x_closed_ind;
51     IF (p_action = 'UPDATE') THEN
52       new_references.creation_date := old_references.creation_date;
53       new_references.created_by := old_references.created_by;
54     ELSE
55       new_references.creation_date := x_creation_date;
56       new_references.created_by := x_created_by;
57     END IF;
58     new_references.last_update_date := x_last_update_date;
59     new_references.last_updated_by := x_last_updated_by;
60     new_references.last_update_login := x_last_update_login;
61 
62   END Set_Column_Values;
63 
64 
65  PROCEDURE Check_Constraints (
66  	Column_Name	IN	VARCHAR2	DEFAULT NULL,
67  	Column_Value 	IN	VARCHAR2	DEFAULT NULL
68  ) as
69 
70   BEGIN
71 
72   -- The following code checks for check constraints on the Columns.
73 
74     IF column_name is NULL THEN
75         NULL;
76     ELSIF  UPPER(column_name) = 'UNIT_SET_CAT' THEN
77         new_references.unit_set_cat := column_value;
78     ELSIF  UPPER(column_name) = 'S_UNIT_SET_CAT' THEN
79         new_references.s_unit_set_cat := column_value;
80     ELSIF  UPPER(column_name) = 'CLOSED_IND' THEN
81         new_references.closed_ind := column_value;
82     ELSIF  UPPER(column_name) = 'RANK' THEN
83         new_references.rank := IGS_GE_NUMBER.TO_NUM(column_value);
84 
85     END IF;
86 
87     IF ((UPPER (column_name) = 'UNIT_SET_CAT') OR (column_name IS NULL)) THEN
88       IF (new_references.unit_set_cat <> UPPER (new_references.unit_set_cat)) THEN
89         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
90 IGS_GE_MSG_STACK.ADD;
91         App_Exception.Raise_Exception;
92       END IF;
93     END IF;
94 
95     IF ((UPPER (column_name) = 'S_UNIT_SET_CAT') OR (column_name IS NULL)) THEN
96       IF (new_references.s_unit_set_cat IS NULL ) THEN
97         Fnd_Message.Set_Name ('IGS', 'IGS_GE_MANDATORY_FLD');
98         IGS_GE_MSG_STACK.ADD;
99         App_Exception.Raise_Exception;
100       END IF;
101     END IF;
102 
103     IF ((UPPER (column_name) = 'CLOSED_IND') OR (column_name IS NULL)) THEN
104       IF new_references.closed_ind  NOT IN ( 'Y' , 'N' ) THEN
105         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
106 IGS_GE_MSG_STACK.ADD;
107         App_Exception.Raise_Exception;
108       END IF;
109     END IF;
110 
111 
112     IF ((UPPER (column_name) = 'RANK') OR (column_name IS NULL)) THEN
113       IF new_references.rank < 0  OR
114          new_references.rank > 999  THEN
115         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
116 IGS_GE_MSG_STACK.ADD;
117         App_Exception.Raise_Exception;
118       END IF;
119     END IF;
120 
121 
122   END Check_Constraints;
123 
124   PROCEDURE Check_Child_Existance AS
125   BEGIN
126 
127     IGS_EN_UNIT_SET_PKG.GET_FK_IGS_EN_UNIT_SET_CAT (
128       old_references.unit_set_cat
129       );
130     igs_da_setup_pkg.get_fk_igs_en_unit_set_cat(old_references.unit_set_cat);
131 
132   END Check_Child_Existance;
133 
134   FUNCTION Get_PK_For_Validation (
135     x_unit_set_cat IN VARCHAR2
136     )  RETURN BOOLEAN AS
137 
138     CURSOR cur_rowid IS
139       SELECT   rowid
140       FROM     IGS_EN_UNIT_SET_CAT
141       WHERE    unit_set_cat = x_unit_set_cat
142       FOR UPDATE NOWAIT;
143 
144     lv_rowid cur_rowid%RowType;
145 
146   BEGIN
147 
148     Open cur_rowid;
149     Fetch cur_rowid INTO lv_rowid;
150 
151     IF (cur_rowid%FOUND) THEN
152        Close cur_rowid;
153        Return(TRUE);
154     ELSE
155        Close cur_rowid;
156        Return(FALSE);
157     END IF;
158 
159 
160   END Get_PK_For_Validation;
161 
162   PROCEDURE Before_DML (
163     p_action IN VARCHAR2,
164     x_rowid IN VARCHAR2 DEFAULT NULL,
165     x_unit_set_cat IN VARCHAR2 DEFAULT NULL,
166     x_description IN VARCHAR2 DEFAULT NULL,
167     x_s_unit_set_cat IN VARCHAR2 DEFAULT NULL,
168     x_rank IN NUMBER DEFAULT NULL,
169     x_closed_ind IN VARCHAR2 DEFAULT NULL,
170      x_creation_date IN DATE DEFAULT NULL,
171     x_created_by IN NUMBER DEFAULT NULL,
172     x_last_update_date IN DATE DEFAULT NULL,
173     x_last_updated_by IN NUMBER DEFAULT NULL,
174     x_last_update_login IN NUMBER DEFAULT NULL
175   ) AS
176   BEGIN
177 
178     Set_Column_Values (
179       p_action,
180       x_rowid,
181       x_unit_set_cat,
182       x_description,
183       x_s_unit_set_cat,
184       x_rank,
185       x_closed_ind,
186       x_creation_date,
187       x_created_by,
188       x_last_update_date,
189       x_last_updated_by,
190       x_last_update_login
191     );
192 
193     IF (p_action = 'INSERT') THEN
194       -- Call all the procedures related to Before Insert.
195 
196 	IF Get_PK_For_Validation(
197 		 new_references.unit_set_cat
198 	                            ) THEN
199 
200  		Fnd_message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
201 IGS_GE_MSG_STACK.ADD;
202  		App_Exception.Raise_Exception;
203 
204 	END IF;
205 
206 	Check_Constraints;
207 
208     ELSIF (p_action = 'UPDATE') THEN
209       -- Call all the procedures related to Before Update.
210 	Check_Constraints;
211     ELSIF (p_action = 'DELETE') THEN
212       -- Call all the procedures related to Before Delete.
213       Check_Child_Existance;
214 
215     ELSIF (p_action = 'VALIDATE_INSERT') THEN
216       		IF  Get_PK_For_Validation (
217 		          new_references.unit_set_cat
218 				 ) THEN
219 		          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
220 IGS_GE_MSG_STACK.ADD;
221 		          App_Exception.Raise_Exception;
222      	        END IF;
223       		Check_Constraints;
224     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
225       		  Check_Constraints;
226     ELSIF (p_action = 'VALIDATE_DELETE') THEN
227 
228                  Check_Child_Existance;
229     END IF;
230 
231   END Before_DML;
232 
233   PROCEDURE After_DML (
234     p_action IN VARCHAR2,
235     x_rowid IN VARCHAR2
236   ) AS
237   BEGIN
238 
239     l_rowid := x_rowid;
240 
241     IF (p_action = 'INSERT') THEN
242       -- Call all the procedures related to After Insert.
243       Null;
244     ELSIF (p_action = 'UPDATE') THEN
245       -- Call all the procedures related to After Update.
246       Null;
247     ELSIF (p_action = 'DELETE') THEN
248       -- Call all the procedures related to After Delete.
249       Null;
250     END IF;
251 
252   END After_DML;
253 
254 
255 
256 procedure INSERT_ROW (
257   X_ROWID in out NOCOPY VARCHAR2,
258   X_UNIT_SET_CAT in VARCHAR2,
259   X_DESCRIPTION in VARCHAR2,
260   X_S_UNIT_SET_CAT in VARCHAR2,
261   X_RANK in NUMBER,
262   X_CLOSED_IND in VARCHAR2,
263   X_MODE in VARCHAR2 default 'R'
264   ) AS
265     cursor C is select ROWID from IGS_EN_UNIT_SET_CAT
266       where UNIT_SET_CAT = X_UNIT_SET_CAT;
267     X_LAST_UPDATE_DATE DATE;
268     X_LAST_UPDATED_BY NUMBER;
269     X_LAST_UPDATE_LOGIN NUMBER;
270 begin
271   X_LAST_UPDATE_DATE := SYSDATE;
272   if(X_MODE = 'I') then
273     X_LAST_UPDATED_BY := 1;
274     X_LAST_UPDATE_LOGIN := 0;
275   elsif (X_MODE = 'R') then
276     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
277     if X_LAST_UPDATED_BY is NULL then
278       X_LAST_UPDATED_BY := -1;
279     end if;
280     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
281     if X_LAST_UPDATE_LOGIN is NULL then
282       X_LAST_UPDATE_LOGIN := -1;
283     end if;
284   else
285     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
286 IGS_GE_MSG_STACK.ADD;
287     app_exception.raise_exception;
288   end if;
289 
290   Before_DML(
291       p_action => 'INSERT' ,
292       x_rowid => x_rowid ,
293       x_unit_set_cat => x_unit_set_cat ,
294       x_description => x_description ,
295       x_s_unit_set_cat => x_s_unit_set_cat ,
296       x_rank => NVL(x_rank,1) ,
297       x_closed_ind => NVL(x_closed_ind,'N') ,
298       x_creation_date => x_last_update_date ,
299       x_created_by => x_last_updated_by  ,
300       x_last_update_date => x_last_update_date ,
301       x_last_updated_by => x_last_updated_by ,
302       x_last_update_login => x_last_update_login
303     );
304 
305   insert into IGS_EN_UNIT_SET_CAT (
306     UNIT_SET_CAT,
307     DESCRIPTION,
308     S_UNIT_SET_CAT,
309     RANK,
310     CLOSED_IND,
311     CREATION_DATE,
312     CREATED_BY,
313     LAST_UPDATE_DATE,
314     LAST_UPDATED_BY,
315     LAST_UPDATE_LOGIN
316   ) values (
317     NEW_REFERENCES.UNIT_SET_CAT,
318     NEW_REFERENCES.DESCRIPTION,
319     NEW_REFERENCES.S_UNIT_SET_CAT,
320     NEW_REFERENCES.RANK,
321     NEW_REFERENCES.CLOSED_IND,
322     X_LAST_UPDATE_DATE,
323     X_LAST_UPDATED_BY,
324     X_LAST_UPDATE_DATE,
325     X_LAST_UPDATED_BY,
326     X_LAST_UPDATE_LOGIN
327   );
328 
329   open c;
330   fetch c into X_ROWID;
331   if (c%notfound) then
332     close c;
333     raise no_data_found;
334   end if;
335   close c;
336 
337   After_DML(
338     p_action => 'INSERT',
339     x_rowid => X_ROWID
340   );
341 
342 end INSERT_ROW;
343 
344 procedure LOCK_ROW (
345   X_ROWID IN VARCHAR2,
346   X_UNIT_SET_CAT in VARCHAR2,
347   X_DESCRIPTION in VARCHAR2,
348   X_S_UNIT_SET_CAT in VARCHAR2,
349   X_RANK in NUMBER,
350   X_CLOSED_IND in VARCHAR2
351 ) AS
352   cursor c1 is select
353       DESCRIPTION,
354       S_UNIT_SET_CAT,
355       RANK,
356       CLOSED_IND
357     from IGS_EN_UNIT_SET_CAT
358     where ROWID = X_ROWID
359     for update nowait;
360   tlinfo c1%rowtype;
361 
362 begin
363   open c1;
364   fetch c1 into tlinfo;
365   if (c1%notfound) then
366     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
367 IGS_GE_MSG_STACK.ADD;
368     app_exception.raise_exception;
369     close c1;
370     return;
371   end if;
372   close c1;
373 
374   if (
375       (tlinfo.DESCRIPTION = X_DESCRIPTION)
376       AND ((tlinfo.S_UNIT_SET_CAT = X_S_UNIT_SET_CAT)
377            OR ((tlinfo.S_UNIT_SET_CAT IS NULL)
378                AND (X_S_UNIT_SET_CAT IS NULL)))
379       AND (tlinfo.RANK = X_RANK)
380       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
381   ) then
382     null;
383   else
384     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
385 IGS_GE_MSG_STACK.ADD;
386     app_exception.raise_exception;
387   end if;
388   return;
389 end LOCK_ROW;
390 
391 procedure UPDATE_ROW (
392   X_ROWID IN VARCHAR2,
393   X_UNIT_SET_CAT in VARCHAR2,
394   X_DESCRIPTION in VARCHAR2,
395   X_S_UNIT_SET_CAT in VARCHAR2,
396   X_RANK in NUMBER,
397   X_CLOSED_IND in VARCHAR2,
398   X_MODE in VARCHAR2 default 'R'
399   ) AS
400     X_LAST_UPDATE_DATE DATE;
401     X_LAST_UPDATED_BY NUMBER;
402     X_LAST_UPDATE_LOGIN NUMBER;
403 begin
404   X_LAST_UPDATE_DATE := SYSDATE;
405   if(X_MODE = 'I') then
406     X_LAST_UPDATED_BY := 1;
407     X_LAST_UPDATE_LOGIN := 0;
408   elsif (X_MODE = 'R') then
409     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
410     if X_LAST_UPDATED_BY is NULL then
411       X_LAST_UPDATED_BY := -1;
412     end if;
413     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
414     if X_LAST_UPDATE_LOGIN is NULL then
415       X_LAST_UPDATE_LOGIN := -1;
416     end if;
417   else
418     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
419 IGS_GE_MSG_STACK.ADD;
420     app_exception.raise_exception;
421   end if;
422 
423   Before_DML(
424       p_action => 'UPDATE' ,
425       x_rowid => x_rowid ,
426       x_unit_set_cat => x_unit_set_cat ,
427       x_description => x_description ,
428       x_s_unit_set_cat => x_s_unit_set_cat ,
429       x_rank => x_rank ,
430       x_closed_ind => x_closed_ind ,
431       x_creation_date => x_last_update_date,
432       x_created_by => x_last_updated_by ,
433       x_last_update_date => x_last_update_date ,
434       x_last_updated_by => x_last_updated_by ,
435       x_last_update_login => x_last_update_login
436     );
437 
438   update IGS_EN_UNIT_SET_CAT set
439     S_UNIT_SET_CAT = NEW_REFERENCES.S_UNIT_SET_CAT,
440     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
441     RANK = NEW_REFERENCES.RANK,
442     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
443     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
444     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
445     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
446   where ROWID = X_ROWID
447   ;
448   if (sql%notfound) then
449     raise no_data_found;
450   end if;
451 
452   After_DML(
453     p_action => 'UPDATE',
454     x_rowid => X_ROWID
455   );
456 
457 end UPDATE_ROW;
458 
459 procedure ADD_ROW (
460   X_ROWID in out NOCOPY VARCHAR2,
461   X_UNIT_SET_CAT in VARCHAR2,
462   X_DESCRIPTION in VARCHAR2,
463   X_S_UNIT_SET_CAT in VARCHAR2,
464   X_RANK in NUMBER,
465   X_CLOSED_IND in VARCHAR2,
466   X_MODE in VARCHAR2 default 'R'
467   ) AS
468   cursor c1 is select rowid from IGS_EN_UNIT_SET_CAT
469      where UNIT_SET_CAT = X_UNIT_SET_CAT
470   ;
471 begin
472   open c1;
473   fetch c1 into X_ROWID;
474   if (c1%notfound) then
475     close c1;
476     INSERT_ROW (
477      X_ROWID,
478      X_UNIT_SET_CAT,
479      X_DESCRIPTION,
480      X_S_UNIT_SET_CAT,
481      X_RANK,
482      X_CLOSED_IND,
483      X_MODE);
484     return;
485   end if;
486   close c1;
487   UPDATE_ROW (
488    X_ROWID,
489    X_UNIT_SET_CAT,
490    X_DESCRIPTION,
491    X_S_UNIT_SET_CAT,
492    X_RANK,
493    X_CLOSED_IND,
494    X_MODE);
495 end ADD_ROW;
496 
497 procedure DELETE_ROW (
498   X_ROWID IN VARCHAR2
499 ) AS
500 begin
501 
502   Before_DML(
503     p_action => 'DELETE',
504     x_rowid => X_ROWID
505   );
506 
507   delete from IGS_EN_UNIT_SET_CAT
508   where ROWID = X_ROWID;
509   if (sql%notfound) then
510     raise no_data_found;
511   end if;
512 
513   After_DML(
514     p_action => 'DELETE',
515     x_rowid => X_ROWID
516   );
517 
518 
519 end DELETE_ROW;
520 
521 end IGS_EN_UNIT_SET_CAT_PKG;