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