[Home] [Help]
PACKAGE BODY: APPS.IGS_PS_GOVT_SPL_TYPE_PKG
Source
1 package body IGS_PS_GOVT_SPL_TYPE_PKG as
2 /* $Header: IGSPI60B.pls 115.3 2002/11/29 02:32:48 nsidana ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_PS_GOVT_SPL_TYPE%RowType;
5 new_references IGS_PS_GOVT_SPL_TYPE%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_govt_special_course_type IN VARCHAR2 DEFAULT NULL,
11 x_description IN VARCHAR2 DEFAULT NULL,
12 x_closed_ind 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 ) AS
19
20 CURSOR cur_old_ref_values IS
21 SELECT *
22 FROM IGS_PS_GOVT_SPL_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 Close cur_old_ref_values;
35 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
36 IGS_GE_MSG_STACK.ADD;
37 App_Exception.Raise_Exception;
38 Return;
39 END IF;
40 Close cur_old_ref_values;
41
42 -- Populate New Values.
43 new_references.govt_special_course_type := x_govt_special_course_type;
44 new_references.description := x_description;
45 new_references.closed_ind := x_closed_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
60 PROCEDURE Check_Constraints (
61 Column_Name IN VARCHAR2 DEFAULT NULL,
62 Column_Value IN VARCHAR2 DEFAULT NULL
63 )
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) = 'GOVT_SPECIAL_COURSE_TYPE' then
71 new_references.govt_special_course_type := column_value;
72 END IF;
73
74 IF upper(column_name) = 'CLOSED_IND' OR
75 column_name is null Then
76 IF new_references.closed_ind NOT IN ('Y','N') 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 END IF;
82
83 IF upper(column_name) = 'GOVT_SPECIAL_COURSE_TYPE' OR
84 column_name is null Then
85 IF new_references.govt_special_course_type <> UPPER(new_references.govt_special_course_type) 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
94 PROCEDURE Check_Child_Existance AS
95 BEGIN
96
97 IGS_PS_VER_PKG.GET_FK_IGS_PS_GOVT_SPL_TYPE (
98 old_references.govt_special_course_type
99 );
100
101 END Check_Child_Existance;
102
103 FUNCTION Get_PK_For_Validation (
104 x_govt_special_course_type IN VARCHAR2
105 ) RETURN BOOLEAN AS
106
107 CURSOR cur_rowid IS
108 SELECT rowid
109 FROM IGS_PS_GOVT_SPL_TYPE
110 WHERE govt_special_course_type = x_govt_special_course_type
111 FOR UPDATE NOWAIT;
112
113 lv_rowid cur_rowid%RowType;
114
115 BEGIN
116
117 Open cur_rowid;
118 Fetch cur_rowid INTO lv_rowid;
119 IF (cur_rowid%FOUND) THEN
120 Close cur_rowid;
121 Return (TRUE);
122 ELSE
123 Close cur_rowid;
124 Return (FALSE);
125 END IF;
126 END Get_PK_For_Validation;
127
128 PROCEDURE Before_DML (
129 p_action IN VARCHAR2,
130 x_rowid IN VARCHAR2 DEFAULT NULL,
131 x_govt_special_course_type IN VARCHAR2 DEFAULT NULL,
132 x_description IN VARCHAR2 DEFAULT NULL,
133 x_closed_ind IN VARCHAR2 DEFAULT NULL,
134 x_creation_date IN DATE DEFAULT NULL,
135 x_created_by IN NUMBER DEFAULT NULL,
136 x_last_update_date IN DATE DEFAULT NULL,
137 x_last_updated_by IN NUMBER DEFAULT NULL,
138 x_last_update_login IN NUMBER DEFAULT NULL
139 ) AS
140 BEGIN
141
142 Set_Column_Values (
143 p_action,
144 x_rowid,
145 x_govt_special_course_type,
146 x_description,
147 x_closed_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
158 IF Get_PK_For_Validation (
159 new_references.govt_special_course_type
160 ) THEN
161 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
162 IGS_GE_MSG_STACK.ADD;
163 App_Exception.Raise_Exception;
164 END IF;
165 Check_Constraints;
166 ELSIF (p_action = 'UPDATE') THEN
167 -- Call all the procedures related to Before Update.
168
169 Check_Constraints;
170 ELSIF (p_action = 'DELETE') THEN
171 -- Call all the procedures related to Before Delete.
172
173 Check_Child_Existance;
174 ELSIF (p_action = 'VALIDATE_INSERT') THEN
175 IF Get_PK_For_Validation (
176 new_references.govt_special_course_type
177 ) THEN
178 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
179 IGS_GE_MSG_STACK.ADD;
180 App_Exception.Raise_Exception;
181 END IF;
182 Check_Constraints;
183 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
184 Check_Constraints;
185 ELSIF (p_action = 'VALIDATE_DELETE') THEN
186 Check_Child_Existance;
187 END IF;
188
189 END Before_DML;
190
191 PROCEDURE After_DML (
192 p_action IN VARCHAR2,
193 x_rowid IN VARCHAR2
194 ) AS
195 BEGIN
196
197 l_rowid := x_rowid;
198
199
200 END After_DML;
201
202
203
204 procedure INSERT_ROW (
205 X_ROWID in out NOCOPY VARCHAR2,
206 X_GOVT_SPECIAL_COURSE_TYPE in VARCHAR2,
207 X_DESCRIPTION in VARCHAR2,
208 X_CLOSED_IND in VARCHAR2,
209 X_MODE in VARCHAR2 default 'R'
210 ) as
211 cursor C is select ROWID from IGS_PS_GOVT_SPL_TYPE
212 where GOVT_SPECIAL_COURSE_TYPE = X_GOVT_SPECIAL_COURSE_TYPE;
213 X_LAST_UPDATE_DATE DATE;
214 X_LAST_UPDATED_BY NUMBER;
215 X_LAST_UPDATE_LOGIN NUMBER;
216 begin
217 X_LAST_UPDATE_DATE := SYSDATE;
218 if(X_MODE = 'I') then
219 X_LAST_UPDATED_BY := 1;
220 X_LAST_UPDATE_LOGIN := 0;
221 elsif (X_MODE = 'R') then
222 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
223 if X_LAST_UPDATED_BY is NULL then
224 X_LAST_UPDATED_BY := -1;
225 end if;
226 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
227 if X_LAST_UPDATE_LOGIN is NULL then
228 X_LAST_UPDATE_LOGIN := -1;
229 end if;
230 else
231 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
232 IGS_GE_MSG_STACK.ADD;
233 app_exception.raise_exception;
234 end if;
235
236 Before_DML( p_action => 'INSERT',
237 x_rowid => X_ROWID,
238 x_govt_special_course_type => X_GOVT_SPECIAL_COURSE_TYPE,
239 x_description => X_DESCRIPTION,
240 x_closed_ind => NVL(X_CLOSED_IND,'N'),
241 x_creation_date => X_LAST_UPDATE_DATE,
242 x_created_by => X_LAST_UPDATED_BY,
243 x_last_update_date => X_LAST_UPDATE_DATE,
244 x_last_updated_by => X_LAST_UPDATED_BY,
245 x_last_update_login => X_LAST_UPDATE_LOGIN
246 );
247
248 insert into IGS_PS_GOVT_SPL_TYPE (
249 GOVT_SPECIAL_COURSE_TYPE,
250 DESCRIPTION,
251 CLOSED_IND,
252 CREATION_DATE,
253 CREATED_BY,
254 LAST_UPDATE_DATE,
255 LAST_UPDATED_BY,
256 LAST_UPDATE_LOGIN
257 ) values (
258 NEW_REFERENCES.GOVT_SPECIAL_COURSE_TYPE,
259 NEW_REFERENCES.DESCRIPTION,
260 NEW_REFERENCES.CLOSED_IND,
261 X_LAST_UPDATE_DATE,
262 X_LAST_UPDATED_BY,
263 X_LAST_UPDATE_DATE,
264 X_LAST_UPDATED_BY,
265 X_LAST_UPDATE_LOGIN
266 );
267
268 open c;
269 fetch c into X_ROWID;
270 if (c%notfound) then
271 close c;
272 raise no_data_found;
273 end if;
274 close c;
275 After_DML(
276 p_action => 'INSERT',
277 x_rowid => X_ROWID
278 );
279
280 end INSERT_ROW;
281
282 procedure LOCK_ROW (
283 X_ROWID in VARCHAR2,
284 X_GOVT_SPECIAL_COURSE_TYPE in VARCHAR2,
285 X_DESCRIPTION in VARCHAR2,
286 X_CLOSED_IND in VARCHAR2
287 ) as
288 cursor c1 is select
289 DESCRIPTION,
290 CLOSED_IND
291 from IGS_PS_GOVT_SPL_TYPE
292 where ROWID = X_ROWID for update nowait;
293 tlinfo c1%rowtype;
294
295 begin
296 open c1;
297 fetch c1 into tlinfo;
298 if (c1%notfound) then
299 close c1;
300 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
301 IGS_GE_MSG_STACK.ADD;
302 app_exception.raise_exception;
303 return;
304 end if;
305 close c1;
306
307 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
308 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
309 ) then
310 null;
311 else
312 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
313 IGS_GE_MSG_STACK.ADD;
314 app_exception.raise_exception;
315 end if;
316 return;
317 end LOCK_ROW;
318
319 procedure UPDATE_ROW (
320 X_ROWID in VARCHAR2,
321 X_GOVT_SPECIAL_COURSE_TYPE in VARCHAR2,
322 X_DESCRIPTION in VARCHAR2,
323 X_CLOSED_IND in VARCHAR2,
324 X_MODE in VARCHAR2 default 'R'
325 ) as
326 X_LAST_UPDATE_DATE DATE;
327 X_LAST_UPDATED_BY NUMBER;
328 X_LAST_UPDATE_LOGIN NUMBER;
329 begin
330 X_LAST_UPDATE_DATE := SYSDATE;
331 if(X_MODE = 'I') then
332 X_LAST_UPDATED_BY := 1;
333 X_LAST_UPDATE_LOGIN := 0;
334 elsif (X_MODE = 'R') then
335 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
336 if X_LAST_UPDATED_BY is NULL then
337 X_LAST_UPDATED_BY := -1;
338 end if;
339 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
340 if X_LAST_UPDATE_LOGIN is NULL then
341 X_LAST_UPDATE_LOGIN := -1;
342 end if;
343 else
344 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
345 IGS_GE_MSG_STACK.ADD;
346 app_exception.raise_exception;
347 end if;
348
349 Before_DML( p_action => 'UPDATE',
350 x_rowid => X_ROWID,
351 x_govt_special_course_type => X_GOVT_SPECIAL_COURSE_TYPE,
352 x_description => X_DESCRIPTION,
353 x_closed_ind => X_CLOSED_IND,
354 x_creation_date => X_LAST_UPDATE_DATE,
355 x_created_by => X_LAST_UPDATED_BY,
356 x_last_update_date => X_LAST_UPDATE_DATE,
357 x_last_updated_by => X_LAST_UPDATED_BY,
358 x_last_update_login => X_LAST_UPDATE_LOGIN
359 );
360
361 update IGS_PS_GOVT_SPL_TYPE set
362 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
363 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
364 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
365 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
366 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
367 where ROWID = X_ROWID
368 ;
369 if (sql%notfound) then
370 raise no_data_found;
371 end if;
372 After_DML(
373 p_action => 'UPDATE',
374 x_rowid => X_ROWID
375 );
376
377 end UPDATE_ROW;
378
379 procedure ADD_ROW (
380 X_ROWID in out NOCOPY VARCHAR2,
381 X_GOVT_SPECIAL_COURSE_TYPE in VARCHAR2,
382 X_DESCRIPTION in VARCHAR2,
383 X_CLOSED_IND in VARCHAR2,
384 X_MODE in VARCHAR2 default 'R'
385 ) as
386 cursor c1 is select rowid from IGS_PS_GOVT_SPL_TYPE
387 where GOVT_SPECIAL_COURSE_TYPE = X_GOVT_SPECIAL_COURSE_TYPE
388 ;
389 begin
390 open c1;
391 fetch c1 into X_ROWID;
392 if (c1%notfound) then
393 close c1;
394 INSERT_ROW (
395 X_ROWID,
396 X_GOVT_SPECIAL_COURSE_TYPE,
397 X_DESCRIPTION,
398 X_CLOSED_IND,
399 X_MODE);
400 return;
401 end if;
402 close c1;
403 UPDATE_ROW (
404 X_ROWID,
405 X_GOVT_SPECIAL_COURSE_TYPE,
406 X_DESCRIPTION,
407 X_CLOSED_IND,
408 X_MODE);
409 end ADD_ROW;
410
411 procedure DELETE_ROW (
412 X_ROWID in VARCHAR2
413 ) as
414 begin
415 Before_DML( p_action => 'DELETE',
416 x_rowid => X_ROWID
417 );
418 delete from IGS_PS_GOVT_SPL_TYPE
419 where ROWID = X_ROWID;
420 if (sql%notfound) then
421 raise no_data_found;
422 end if;
423 After_DML(
424 p_action => 'DELETE',
425 x_rowid => X_ROWID
426 );
427
428 end DELETE_ROW;
429
430 end IGS_PS_GOVT_SPL_TYPE_PKG;