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