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