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