[Home] [Help]
PACKAGE BODY: APPS.IGS_GE_SPL_REQ_PKG
Source
1 package body IGS_GE_SPL_REQ_PKG as
2 /* $Header: IGSMI06B.pls 115.3 2002/11/29 01:10:20 nsidana ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_GE_SPL_REQ%RowType;
5 new_references IGS_GE_SPL_REQ%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_description IN VARCHAR2 DEFAULT NULL,
11 x_closed_ind IN VARCHAR2 DEFAULT NULL,
12 x_comments IN VARCHAR2 DEFAULT NULL,
13 x_special_requirement_cd 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_GE_SPL_REQ
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.description := x_description;
45 new_references.closed_ind := x_closed_ind;
46 new_references.comments := x_comments;
47 new_references.special_requirement_cd := x_special_requirement_cd;
48 IF (p_action = 'UPDATE') THEN
49 new_references.creation_date := old_references.creation_date;
50 new_references.created_by := old_references.created_by;
51 ELSE
52 new_references.creation_date := x_creation_date;
53 new_references.created_by := x_created_by;
54 END IF;
55 new_references.last_update_date := x_last_update_date;
56 new_references.last_updated_by := x_last_updated_by;
57 new_references.last_update_login := x_last_update_login;
58
59 END Set_Column_Values;
60
61 PROCEDURE Check_Constraints(
62 Column_Name IN VARCHAR2 DEFAULT NULL,
63 Column_Value IN VARCHAR2 DEFAULT NULL
64 ) as
65 BEGIN
66 IF column_name is null then
67 NULL;
68 ELSIF upper(Column_name) = 'CLOSED_IND' then
69 new_references.closed_ind := column_value;
70 ELSIF upper(Column_name) = 'SPECIAL_REQUIREMENT_CD' then
71 new_references.special_requirement_cd := column_value;
72 END IF ;
73 IF upper(Column_name) = 'CLOSED_IND' OR column_name is null then
74 IF new_references.closed_ind <> UPPER(new_references.closed_ind ) OR
75 new_references.closed_ind NOT IN ( 'Y' , 'N' ) then
76 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
77 IGS_GE_MSG_STACK.ADD;
78 App_Exception.Raise_Exception;
79 END IF;
80 END IF;
81 IF upper(Column_name) = 'SPECIAL_REQUIREMENT_CD' OR column_name is null then
82 IF new_references.special_requirement_cd <> UPPER(new_references.special_requirement_cd ) then
83 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
84 IGS_GE_MSG_STACK.ADD;
85 App_Exception.Raise_Exception;
86 END IF;
87 END IF;
88 END Check_Constraints;
89
90
91 PROCEDURE Check_Child_Existance as
92 BEGIN
93
94 IGS_PS_STDNT_SPL_REQ_PKG.GET_FK_IGS_GE_SPL_REQ (
95 old_references.special_requirement_cd
96 );
97
98 END Check_Child_Existance;
99
100 FUNCTION GET_PK_FOR_VALIDATION (
101 x_special_requirement_cd IN VARCHAR2
102 ) RETURN BOOLEAN as
103
104 CURSOR cur_rowid IS
105 SELECT rowid
106 FROM IGS_GE_SPL_REQ
107 WHERE special_requirement_cd = x_special_requirement_cd
108 FOR UPDATE NOWAIT;
109
110 lv_rowid cur_rowid%RowType;
111
112 BEGIN
113
114 Open cur_rowid;
115 Fetch cur_rowid INTO lv_rowid;
116 IF (cur_rowid%FOUND) THEN
117 Close cur_rowid;
118 Return(TRUE);
119 ELSE
120 Close cur_rowid;
121 Return(FALSE);
122 END IF;
123
124 END Get_PK_For_Validation;
125
126 PROCEDURE Before_DML (
127 p_action IN VARCHAR2,
128 x_rowid IN VARCHAR2 DEFAULT NULL,
129 x_description IN VARCHAR2 DEFAULT NULL,
130 x_closed_ind IN VARCHAR2 DEFAULT NULL,
131 x_comments IN VARCHAR2 DEFAULT NULL,
132 x_special_requirement_cd IN VARCHAR2 DEFAULT NULL,
133 x_creation_date IN DATE DEFAULT NULL,
134 x_created_by IN NUMBER DEFAULT NULL,
135 x_last_update_date IN DATE DEFAULT NULL,
136 x_last_updated_by IN NUMBER DEFAULT NULL,
137 x_last_update_login IN NUMBER DEFAULT NULL
138 ) as
139 BEGIN
140
141 Set_Column_Values (
142 p_action,
143 x_rowid,
144 x_description,
145 x_closed_ind,
146 x_comments,
147 x_special_requirement_cd,
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 IF Get_PK_For_Validation(
157 new_references.special_requirement_cd
158 )THEN
159 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
160 IGS_GE_MSG_STACK.ADD;
161 App_Exception.Raise_Exception;
162 END IF ;
163 Check_Constraints;
164 ELSIF (p_action = 'UPDATE') THEN
165 -- Call all the procedures related to Before Update.
166 Check_Constraints;
167 ELSIF (p_action = 'DELETE') THEN
168 -- Call all the procedures related to Before Delete.
169 Check_Child_Existance;
170 ELSIF (p_action = 'VALIDATE_INSERT') THEN
171 IF Get_PK_For_Validation(
172 new_references.special_requirement_cd
173 )THEN
174 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
175 IGS_GE_MSG_STACK.ADD;
176 App_Exception.Raise_Exception;
177 END IF ;
178 Check_Constraints;
179 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
180 Check_Constraints;
181 ELSIF (p_action = 'VALIDATE_DELETE') THEN
182 Check_Child_Existance;
183 END IF;
184
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 IF (p_action = 'INSERT') THEN
196 -- Call all the procedures related to After Insert.
197 Null;
198 ELSIF (p_action = 'UPDATE') THEN
199 -- Call all the procedures related to After Update.
200 Null;
201 ELSIF (p_action = 'DELETE') THEN
202 -- Call all the procedures related to After Delete.
203 Null;
204 END IF;
205
206 END After_DML;
207
208 procedure INSERT_ROW (
209 X_ROWID in out NOCOPY VARCHAR2,
210 X_SPECIAL_REQUIREMENT_CD in VARCHAR2,
211 X_DESCRIPTION in VARCHAR2,
212 X_CLOSED_IND in VARCHAR2,
213 X_COMMENTS in VARCHAR2,
214 X_MODE in VARCHAR2 default 'R'
215 ) as
216 cursor C is select ROWID from IGS_GE_SPL_REQ
217 where SPECIAL_REQUIREMENT_CD = X_SPECIAL_REQUIREMENT_CD;
218 X_LAST_UPDATE_DATE DATE;
219 X_LAST_UPDATED_BY NUMBER;
220 X_LAST_UPDATE_LOGIN NUMBER;
221 begin
222 X_LAST_UPDATE_DATE := SYSDATE;
223 if(X_MODE = 'I') then
224 X_LAST_UPDATED_BY := 1;
225 X_LAST_UPDATE_LOGIN := 0;
226 elsif (X_MODE = 'R') then
227 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
228 if X_LAST_UPDATED_BY is NULL then
229 X_LAST_UPDATED_BY := -1;
230 end if;
231 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
232 if X_LAST_UPDATE_LOGIN is NULL then
233 X_LAST_UPDATE_LOGIN := -1;
234 end if;
235 else
236 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
237 IGS_GE_MSG_STACK.ADD;
238 app_exception.raise_exception;
239 end if;
240 Before_DML (
241 p_action => 'INSERT',
242 x_rowid => X_ROWID,
243 x_special_requirement_cd => X_SPECIAL_REQUIREMENT_CD,
244 x_description => X_DESCRIPTION,
245 x_closed_ind => NVL(X_CLOSED_IND,'N'),
246 x_comments => X_COMMENTS,
247 x_created_by => X_LAST_UPDATED_BY,
248 x_creation_date => X_LAST_UPDATE_DATE,
249 x_last_updated_by => X_LAST_UPDATED_BY,
250 x_last_update_date => X_LAST_UPDATE_DATE,
251 x_last_update_login => X_LAST_UPDATE_LOGIN
252 );
253
254 insert into IGS_GE_SPL_REQ (
255 SPECIAL_REQUIREMENT_CD,
256 DESCRIPTION,
257 CLOSED_IND,
258 COMMENTS,
259 CREATION_DATE,
260 CREATED_BY,
261 LAST_UPDATE_DATE,
262 LAST_UPDATED_BY,
263 LAST_UPDATE_LOGIN
264 ) values (
265 NEW_REFERENCES.SPECIAL_REQUIREMENT_CD,
266 NEW_REFERENCES.DESCRIPTION,
267 NEW_REFERENCES.CLOSED_IND,
268 NEW_REFERENCES.COMMENTS,
269 X_LAST_UPDATE_DATE,
270 X_LAST_UPDATED_BY,
271 X_LAST_UPDATE_DATE,
272 X_LAST_UPDATED_BY,
273 X_LAST_UPDATE_LOGIN
274 );
275
276 open c;
277 fetch c into X_ROWID;
278 if (c%notfound) then
279 close c;
280 raise no_data_found;
281 end if;
282 close c;
283 After_DML (
284 p_action => 'INSERT',
285 x_rowid => X_ROWID
286 );
287 end INSERT_ROW;
288
289 procedure LOCK_ROW (
290 X_ROWID in VARCHAR2,
291 X_SPECIAL_REQUIREMENT_CD in VARCHAR2,
292 X_DESCRIPTION in VARCHAR2,
293 X_CLOSED_IND in VARCHAR2,
294 X_COMMENTS in VARCHAR2
295 ) as
296 cursor c1 is select
297 DESCRIPTION,
298 CLOSED_IND,
299 COMMENTS
300 from IGS_GE_SPL_REQ
301 where ROWID = X_ROWID
302 for update nowait;
303 tlinfo c1%rowtype;
304
305 begin
306 open c1;
307 fetch c1 into tlinfo;
308 if (c1%notfound) then
309 close c1;
310 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
311 IGS_GE_MSG_STACK.ADD;
312 app_exception.raise_exception;
313 return;
314 end if;
315 close c1;
316
317 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
318 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
319 AND ((tlinfo.COMMENTS = X_COMMENTS)
320 OR ((tlinfo.COMMENTS is null)
321 AND (X_COMMENTS is null)))
322 ) then
323 null;
324 else
325 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
326 IGS_GE_MSG_STACK.ADD;
330 end LOCK_ROW;
327 app_exception.raise_exception;
328 end if;
329 return;
331
332 procedure UPDATE_ROW (
333 X_ROWID in VARCHAR2,
334 X_SPECIAL_REQUIREMENT_CD in VARCHAR2,
335 X_DESCRIPTION in VARCHAR2,
336 X_CLOSED_IND in VARCHAR2,
337 X_COMMENTS in VARCHAR2,
338 X_MODE in VARCHAR2 default 'R'
339 ) as
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 => 'UPDATE',
364 x_rowid => X_ROWID,
365 x_special_requirement_cd => X_SPECIAL_REQUIREMENT_CD,
366 x_description => X_DESCRIPTION,
367 x_closed_ind => X_CLOSED_IND,
368 x_comments => X_COMMENTS,
369 x_created_by => X_LAST_UPDATED_BY,
370 x_creation_date => X_LAST_UPDATE_DATE,
371 x_last_updated_by => X_LAST_UPDATED_BY,
372 x_last_update_date => X_LAST_UPDATE_DATE,
373 x_last_update_login => X_LAST_UPDATE_LOGIN
374 );
375 update IGS_GE_SPL_REQ set
376 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
377 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
378 COMMENTS = NEW_REFERENCES.COMMENTS,
379 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
380 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
381 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
382 where ROWID = X_ROWID
383 ;
384 if (sql%notfound) then
385 raise no_data_found;
386 end if;
387 After_DML (
388 p_action => 'UPDATE',
389 x_rowid => X_ROWID
390 );
391 end UPDATE_ROW;
392
393 procedure ADD_ROW (
394 X_ROWID in out NOCOPY VARCHAR2,
395 X_SPECIAL_REQUIREMENT_CD in VARCHAR2,
396 X_DESCRIPTION in VARCHAR2,
397 X_CLOSED_IND in VARCHAR2,
398 X_COMMENTS in VARCHAR2,
399 X_MODE in VARCHAR2 default 'R'
400 ) as
401 cursor c1 is select rowid from IGS_GE_SPL_REQ
402 where SPECIAL_REQUIREMENT_CD = X_SPECIAL_REQUIREMENT_CD
403 ;
404
405 begin
406 open c1;
407 fetch c1 into X_ROWID;
408 if (c1%notfound) then
409 close c1;
410 INSERT_ROW (
411 X_ROWID,
412 X_SPECIAL_REQUIREMENT_CD,
413 X_DESCRIPTION,
414 X_CLOSED_IND,
415 X_COMMENTS,
416 X_MODE);
417 return;
418 end if;
419 close c1;
420 UPDATE_ROW (
421 X_ROWID,
422 X_SPECIAL_REQUIREMENT_CD,
423 X_DESCRIPTION,
424 X_CLOSED_IND,
425 X_COMMENTS,
426 X_MODE);
427 end ADD_ROW;
428
429 procedure DELETE_ROW (
430 X_ROWID in VARCHAR2
431 ) as
432 begin
433 Before_DML (
434 p_action => 'DELETE',
435 x_rowid => X_ROWID
436 );
437 delete from IGS_GE_SPL_REQ
438 where ROWID = X_ROWID;
439 if (sql%notfound) then
440 raise no_data_found;
441 end if;
442 After_DML (
443 p_action => 'DELETE',
444 x_rowid => X_ROWID
445 );
446
447 end DELETE_ROW;
448
449 end IGS_GE_SPL_REQ_PKG;