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