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