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