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