[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;