DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RU_RET_TYPE_PKG

Source


1 package body IGS_RU_RET_TYPE_PKG as
2 /* $Header: IGSUI10B.pls 120.1 2005/09/16 06:18:48 appldev ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_RU_RET_TYPE%RowType;
6   new_references IGS_RU_RET_TYPE%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 ,
11     x_s_return_type IN VARCHAR2 ,
12     x_function_return_ind IN VARCHAR2 ,
13     x_creation_date IN DATE ,
14     x_created_by IN NUMBER ,
15     x_last_update_date IN DATE ,
16     x_last_updated_by IN NUMBER ,
17     x_last_update_login IN NUMBER
18 ) as
19 
20     CURSOR cur_old_ref_values IS
21       SELECT   *
22       FROM     IGS_RU_RET_TYPE
23       WHERE    rowid = x_rowid;
24 
25   BEGIN
26 
27     l_rowid := x_rowid;
28 
29     -- Code for setting the Old and New Reference Values.
30     -- Populate Old Values.
31     Open cur_old_ref_values;
32     Fetch cur_old_ref_values INTO old_references;
33     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
34       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
35       IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_RET_TYPE  : P_ACTION INSERT VALIDATE_INSERT   : IGSUI10B.PLS');
36       IGS_GE_MSG_STACK.ADD;
37       App_Exception.Raise_Exception;
38       Close cur_old_ref_values;
39       Return;
40     END IF;
41     Close cur_old_ref_values;
42 
43     -- Populate New Values.
44     new_references.s_return_type := x_s_return_type;
45     new_references.function_return_ind := x_function_return_ind;
46     IF (p_action = 'UPDATE') THEN
47       new_references.creation_date := old_references.creation_date;
48       new_references.created_by := old_references.created_by;
49     ELSE
50       new_references.creation_date := x_creation_date;
51       new_references.created_by := x_created_by;
52     END IF;
53     new_references.last_update_date := x_last_update_date;
54     new_references.last_updated_by := x_last_updated_by;
55     new_references.last_update_login := x_last_update_login;
56 
57   END Set_Column_Values;
58 
59 PROCEDURE Check_Constraints (
60 	 Column_Name	IN	VARCHAR2,
61 	 Column_Value 	IN	VARCHAR2
62 )
63  as
64  BEGIN
65 IF Column_Name is null THEN
66   NULL;
67 ELSIF upper(Column_name) = 'S_RETURN_TYPE' THEN
68   new_references.S_RETURN_TYPE:= COLUMN_VALUE ;
69 
70 ELSIF upper(Column_name) = 'FUNCTION_RETURN_IND' THEN
71   new_references.FUNCTION_RETURN_IND:= COLUMN_VALUE ;
72 
73 END IF ;
74 
75 IF upper(Column_name) = 'S_RETURN_TYPE' OR COLUMN_NAME IS NULL THEN
76   IF new_references.S_RETURN_TYPE<> upper(new_references.S_RETURN_TYPE) then
77     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
78 	 IGS_GE_MSG_STACK.ADD;
79     App_Exception.Raise_Exception ;
80   END IF;
81 
82 END IF ;
83 
84 IF upper(Column_name) = 'FUNCTION_RETURN_IND' OR COLUMN_NAME IS NULL THEN
85   IF new_references.FUNCTION_RETURN_IND NOT IN  ('Y','N') then
86     Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
87 	 IGS_GE_MSG_STACK.ADD;
88     App_Exception.Raise_Exception ;
89   END IF;
90 END IF ;
91  END Check_Constraints;
92 
93   PROCEDURE Check_Child_Existance as
94   BEGIN
95     IGS_RU_NAMED_RULE_GR_Pkg.Get_FK_IGS_RU_RET_TYPE (
96       old_references.s_return_type
97       );
98     IGS_RU_DESCRIPTION_PKG.GET_FK_IGS_RU_RET_TYPE (
99       old_references.s_return_type
100       );
101 
102   END Check_Child_Existance;
103 
104 FUNCTION Get_PK_For_Validation (
105     x_s_return_type IN VARCHAR2
106     )
107 RETURN BOOLEAN
108 AS
109     CURSOR cur_rowid IS
110       SELECT   rowid
111       FROM     IGS_RU_RET_TYPE
112       WHERE    s_return_type = x_s_return_type
113       FOR UPDATE;
114 
115     lv_rowid cur_rowid%RowType;
116 
117   BEGIN
118 
119     Open cur_rowid;
120     Fetch cur_rowid INTO lv_rowid;
121  IF (cur_rowid%FOUND) THEN
122        Close cur_rowid;
123        Return (TRUE);
124  ELSE
125        Close cur_rowid;
126        Return (FALSE);
127  END IF;
128   END Get_PK_For_Validation;
129 
130   PROCEDURE Before_DML (
131     p_action IN VARCHAR2,
132     x_rowid IN VARCHAR2 ,
133     x_s_return_type IN VARCHAR2 ,
134     x_function_return_ind IN VARCHAR2 ,
135     x_creation_date IN DATE ,
136     x_created_by IN NUMBER ,
137     x_last_update_date IN DATE ,
138     x_last_updated_by IN NUMBER ,
139     x_last_update_login IN NUMBER
140   ) as
141   BEGIN
142 
143     Set_Column_Values (
144       p_action,
145       x_rowid,
146       x_s_return_type,
147       x_function_return_ind,
148       x_creation_date,
149       x_created_by,
150       x_last_update_date,
151       x_last_updated_by,
152       x_last_update_login
153     );
154 
155  IF (p_action = 'INSERT') THEN
156        -- Call all the procedures related to Before Insert.
157       IF  Get_PK_For_Validation (
158           new_references.s_return_type
159 		) THEN
160          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
161 		  IGS_GE_MSG_STACK.ADD;
162           App_Exception.Raise_Exception;
163       END IF;
164       Check_Constraints;
165   ELSIF (p_action = 'UPDATE') THEN
166        -- Call all the procedures related to Before Update.
167        Check_Constraints;
168  ELSIF (p_action = 'DELETE') THEN
169        -- Call all the procedures related to Before Delete.
170        Check_Child_Existance;
171  ELSIF (p_action = 'VALIDATE_INSERT') THEN
172       IF  Get_PK_For_Validation (
173           new_references.s_return_type
174 		) THEN
175          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
176 		  IGS_GE_MSG_STACK.ADD;
177           App_Exception.Raise_Exception;
178       END IF;
179       Check_Constraints;
180  ELSIF (p_action = 'VALIDATE_UPDATE') THEN
181        Check_Constraints;
182 ELSIF (p_action = 'VALIDATE_DELETE') THEN
183       Check_Child_Existance;
184  END IF;
185   END Before_DML;
186 
187   PROCEDURE After_DML (
188     p_action IN VARCHAR2,
189     x_rowid IN VARCHAR2
190   ) as
191   BEGIN
192 
193     l_rowid := x_rowid;
194 
195   END After_DML;
196 
197 
198 procedure INSERT_ROW (
199   X_ROWID in out NOCOPY VARCHAR2,
200   X_S_RETURN_TYPE in VARCHAR2,
201   X_FUNCTION_RETURN_IND in VARCHAR2,
202   X_MODE in VARCHAR2
203   ) as
204     cursor C is select ROWID from IGS_RU_RET_TYPE
205       where S_RETURN_TYPE = X_S_RETURN_TYPE;
206     X_LAST_UPDATE_DATE DATE;
207     X_LAST_UPDATED_BY NUMBER;
208     X_LAST_UPDATE_LOGIN NUMBER;
209 begin
210   X_LAST_UPDATE_DATE := SYSDATE;
211   if(X_MODE = 'I') then
212     X_LAST_UPDATED_BY := 1;
213     X_LAST_UPDATE_LOGIN := 0;
214   elsif (X_MODE = 'R') then
215     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
216     if X_LAST_UPDATED_BY is NULL then
217       X_LAST_UPDATED_BY := -1;
218     end if;
219     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
220     if X_LAST_UPDATE_LOGIN is NULL then
221       X_LAST_UPDATE_LOGIN := -1;
222     end if;
223   else
224     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
225 	 IGS_GE_MSG_STACK.ADD;
226     app_exception.raise_exception;
227   end if;
228 
229   Before_DML(
230    p_action=>'INSERT',
231    x_rowid=>X_ROWID,
232    x_function_return_ind=>X_FUNCTION_RETURN_IND,
233    x_s_return_type=>X_S_RETURN_TYPE,
234    x_creation_date=>X_LAST_UPDATE_DATE,
235    x_created_by=>X_LAST_UPDATED_BY,
236    x_last_update_date=>X_LAST_UPDATE_DATE,
237    x_last_updated_by=>X_LAST_UPDATED_BY,
238    x_last_update_login=>X_LAST_UPDATE_LOGIN
239    );
240 
241   insert into IGS_RU_RET_TYPE (
242     S_RETURN_TYPE,
243     FUNCTION_RETURN_IND,
244     CREATION_DATE,
245     CREATED_BY,
246     LAST_UPDATE_DATE,
247     LAST_UPDATED_BY,
248     LAST_UPDATE_LOGIN
249   ) values (
250     NEW_REFERENCES.S_RETURN_TYPE,
251     NEW_REFERENCES.FUNCTION_RETURN_IND,
252     X_LAST_UPDATE_DATE,
253     X_LAST_UPDATED_BY,
254     X_LAST_UPDATE_DATE,
255     X_LAST_UPDATED_BY,
256     X_LAST_UPDATE_LOGIN
257   );
258 
259   open c;
260   fetch c into X_ROWID;
261   if (c%notfound) then
262     close c;
263     raise no_data_found;
264   end if;
265   close c;
266 
267   After_DML (
268     p_action => 'INSERT',
269     x_rowid => X_ROWID);
270 
271 end INSERT_ROW;
272 
273 procedure LOCK_ROW (
274   X_ROWID in VARCHAR2,
275   X_S_RETURN_TYPE in VARCHAR2,
276   X_FUNCTION_RETURN_IND in VARCHAR2
277 ) as
278   cursor c1 is select
279       FUNCTION_RETURN_IND
280     from IGS_RU_RET_TYPE
281     where ROWID = X_ROWID for update nowait;
282   tlinfo c1%rowtype;
283 
284 begin
285   open c1;
286   fetch c1 into tlinfo;
287   if (c1%notfound) then
288     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
289     IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_RET_TYPE  : LOCK_ROW   : IGSUI10B.PLS');
290     IGS_GE_MSG_STACK.ADD;
291     app_exception.raise_exception;
292     close c1;
293     return;
294   end if;
295   close c1;
296 
297       if ( ((tlinfo.FUNCTION_RETURN_IND = X_FUNCTION_RETURN_IND)
298            OR ((tlinfo.FUNCTION_RETURN_IND is null)
299                AND (X_FUNCTION_RETURN_IND is null)))
300   ) then
301     null;
302   else
303     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
304     IGS_RU_GEN_006.SET_TOKEN(' IGS_RU_RET_TYPE  : LOCK_ROW  FORM_RECORD_CHANGED  : IGSUI10B.PLS');
305     IGS_GE_MSG_STACK.ADD;
306     app_exception.raise_exception;
307   end if;
308   return;
309 end LOCK_ROW;
310 
311 procedure UPDATE_ROW (
312   X_ROWID in VARCHAR2,
313   X_S_RETURN_TYPE in VARCHAR2,
314   X_FUNCTION_RETURN_IND in VARCHAR2,
315   X_MODE in VARCHAR2
316   ) as
317     X_LAST_UPDATE_DATE DATE;
318     X_LAST_UPDATED_BY NUMBER;
319     X_LAST_UPDATE_LOGIN NUMBER;
320 begin
321   X_LAST_UPDATE_DATE := SYSDATE;
322   if(X_MODE = 'I') then
323     X_LAST_UPDATED_BY := 1;
324     X_LAST_UPDATE_LOGIN := 0;
325   elsif (X_MODE = 'R') then
326     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
327     if X_LAST_UPDATED_BY is NULL then
328       X_LAST_UPDATED_BY := -1;
329     end if;
330     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
331     if X_LAST_UPDATE_LOGIN is NULL then
332       X_LAST_UPDATE_LOGIN := -1;
333     end if;
334   else
335     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
336 	 IGS_GE_MSG_STACK.ADD;
337     app_exception.raise_exception;
338   end if;
339 
340   Before_DML(
341    p_action=>'UPDATE',
342    x_rowid=>X_ROWID,
343    x_function_return_ind=>X_FUNCTION_RETURN_IND,
344    x_s_return_type=>X_S_RETURN_TYPE,
345    x_creation_date=>X_LAST_UPDATE_DATE,
346    x_created_by=>X_LAST_UPDATED_BY,
347    x_last_update_date=>X_LAST_UPDATE_DATE,
348    x_last_updated_by=>X_LAST_UPDATED_BY,
349    x_last_update_login=>X_LAST_UPDATE_LOGIN
350    );
351 
352   update IGS_RU_RET_TYPE set
353     FUNCTION_RETURN_IND = NEW_REFERENCES.FUNCTION_RETURN_IND,
354     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
355     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
356     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
357   where ROWID = X_ROWID
358   ;
359   if (sql%notfound) then
360     raise no_data_found;
361   end if;
362 
363   After_DML (
364     p_action => 'UPDATE',
365     x_rowid => X_ROWID);
366 
367 end UPDATE_ROW;
368 
369 procedure ADD_ROW (
370   X_ROWID in out NOCOPY VARCHAR2,
371   X_S_RETURN_TYPE in VARCHAR2,
372   X_FUNCTION_RETURN_IND in VARCHAR2,
373   X_MODE in VARCHAR2
374   ) as
375   cursor c1 is select rowid from IGS_RU_RET_TYPE
376      where S_RETURN_TYPE = X_S_RETURN_TYPE
377   ;
378 begin
379   open c1;
380   fetch c1 into X_ROWID;
381   if (c1%notfound) then
382     close c1;
383     INSERT_ROW (
384      X_ROWID,
385      X_S_RETURN_TYPE,
386      X_FUNCTION_RETURN_IND,
387      X_MODE);
388     return;
389   end if;
390   close c1;
391   UPDATE_ROW (
392    X_ROWID,
393    X_S_RETURN_TYPE,
394    X_FUNCTION_RETURN_IND,
395    X_MODE);
396 end ADD_ROW;
397 
398 procedure DELETE_ROW (
399   X_ROWID in VARCHAR2
400 ) as
401 begin
402 
403   Before_DML (
404     p_action => 'DELETE',
405     x_rowid => X_ROWID);
406 
407   delete from IGS_RU_RET_TYPE
408   where ROWID = X_ROWID;
409   if (sql%notfound) then
410     raise no_data_found;
411   end if;
412 
413   After_DML (
414     p_action => 'DELETE',
415     x_rowid => X_ROWID);
416 
417 end DELETE_ROW;
418 
419 end IGS_RU_RET_TYPE_PKG;