[Home] [Help]
PACKAGE BODY: APPS.IGS_AS_SPCL_CONS_CAT_PKG
Source
1 package body IGS_AS_SPCL_CONS_CAT_PKG as
2 /* $Header: IGSDI47B.pls 115.7 2003/05/19 04:44:12 ijeddy ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_AS_SPCL_CONS_CAT%RowType;
6 new_references IGS_AS_SPCL_CONS_CAT%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_spcl_consideration_cat IN VARCHAR2 DEFAULT NULL,
12 x_description IN VARCHAR2 DEFAULT NULL,
13 x_explanation IN VARCHAR2 DEFAULT NULL,
14 x_closed_ind IN VARCHAR2 DEFAULT NULL,
15 x_creation_date IN DATE DEFAULT NULL,
16 x_created_by IN NUMBER DEFAULT NULL,
17 x_last_update_date IN DATE DEFAULT NULL,
18 x_last_updated_by IN NUMBER DEFAULT NULL,
19 x_last_update_login IN NUMBER DEFAULT NULL
20 ) as
21
22 CURSOR cur_old_ref_values IS
23 SELECT *
24 FROM IGS_AS_SPCL_CONS_CAT
25 WHERE rowid = x_rowid;
26
27 BEGIN
28
29 l_rowid := x_rowid;
30
31 -- Code for setting the Old and New Reference Values.
32 -- Populate Old Values.
33 Open cur_old_ref_values;
34 Fetch cur_old_ref_values INTO old_references;
35 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
36 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
37 Igs_Ge_Msg_Stack.Add;
38 Close cur_old_ref_values;
39 App_Exception.Raise_Exception;
40 Return;
41 END IF;
42 Close cur_old_ref_values;
43
44 -- Populate New Values.
45 new_references.spcl_consideration_cat:= x_spcl_consideration_cat;
46 new_references.description := x_description;
47 new_references.explanation := x_explanation;
48 new_references.closed_ind := x_closed_ind;
49 IF (p_action = 'UPDATE') THEN
50 new_references.creation_date := old_references.creation_date;
51 new_references.created_by := old_references.created_by;
52 ELSE
53 new_references.creation_date := x_creation_date;
54 new_references.created_by := x_created_by;
55 END IF;
56 new_references.last_update_date := x_last_update_date;
57 new_references.last_updated_by := x_last_updated_by;
58 new_references.last_update_login := x_last_update_login;
59
60 END Set_Column_Values;
61
62
63 PROCEDURE Check_Child_Existance as
64 BEGIN
65
66 IGS_AS_SPL_CONS_APPL_PKG.GET_FK_IGS_AS_SPCL_CONS_OUT(
67 old_references.spcl_consideration_cat
68 );
69
70 END Check_Child_Existance;
71
72 FUNCTION Get_PK_For_Validation (
73 x_spcl_consideration_cat IN VARCHAR2
74 ) RETURN BOOLEAN AS
75 CURSOR cur_rowid IS
76 SELECT rowid
77 FROM IGS_AS_SPCL_CONS_CAT
78 WHERE spcl_consideration_cat= x_spcl_consideration_cat
79 FOR UPDATE NOWAIT;
80
81 lv_rowid cur_rowid%RowType;
82
83 BEGIN
84
85 Open cur_rowid;
86 Fetch cur_rowid INTO lv_rowid;
87 IF (cur_rowid%FOUND) THEN
88 Close cur_rowid;
89 Return (TRUE);
90 ELSE
91 Close cur_rowid;
92 Return (FALSE);
93 END IF;
94
95 END Get_PK_For_Validation;
96
97 PROCEDURE Check_Constraints (
98 Column_Name IN VARCHAR2 DEFAULT NULL,
99 Column_Value IN VARCHAR2 DEFAULT NULL
100 ) as
101 BEGIN
102 IF column_name is null then
103 NULL;
104 ELSIF upper(Column_name) = 'CLOSED_IND' then
105 new_references.closed_ind:= column_value;
106 ELSIF upper(Column_name) = 'DESCRIPTION' then
107 new_references.description:= column_value;
108 ELSIF upper(Column_name) = 'SPCL_CONSIDERATION_CAT' then
109 new_references.spcl_consideration_cat:= column_value;
110 END IF;
111 IF upper(column_name) = 'CLOSED_IND' OR
112 column_name is null Then
113 IF new_references.closed_ind <> UPPER(new_references.closed_ind) or new_references.closed_ind NOT IN ( 'Y' , 'N' )Then
114 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
115 Igs_Ge_Msg_Stack.Add;
116 App_Exception.Raise_Exception;
117 END IF;
118 END IF;
119 IF upper(column_name) = 'SPCL_CONSIDERATION_CAT' OR
120 column_name is null Then
121 IF new_references.spcl_consideration_cat <> UPPER(new_references.spcl_consideration_cat) Then
122 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
123 Igs_Ge_Msg_Stack.Add;
124 App_Exception.Raise_Exception;
125 END IF;
126 END IF;
127
128 END Check_Constraints;
129
130 PROCEDURE Before_DML (
131 p_action IN VARCHAR2,
132 x_rowid IN VARCHAR2 DEFAULT NULL,
133 x_spcl_consideration_cat IN VARCHAR2 DEFAULT NULL,
134 x_description IN VARCHAR2 DEFAULT NULL,
135 x_explanation IN VARCHAR2 DEFAULT NULL,
136 x_closed_ind IN VARCHAR2 DEFAULT NULL,
137 x_creation_date IN DATE DEFAULT NULL,
138 x_created_by IN NUMBER DEFAULT NULL,
139 x_last_update_date IN DATE DEFAULT NULL,
140 x_last_updated_by IN NUMBER DEFAULT NULL,
141 x_last_update_login IN NUMBER DEFAULT NULL
142 ) as
143 BEGIN
144
145 Set_Column_Values (
146 p_action,
147 x_rowid,
148 x_spcl_consideration_cat,
149 x_description,
150 x_explanation,
151 x_closed_ind,
152 x_creation_date,
153 x_created_by,
154 x_last_update_date,
155 x_last_updated_by,
156 x_last_update_login
157 );
158
159 IF (p_action = 'INSERT') THEN
160 -- Call all the procedures related to Before Insert.
161 Null;
162 IF Get_PK_For_Validation (
163 new_references.spcl_consideration_cat
164 ) THEN
165 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
166 Igs_Ge_Msg_Stack.Add;
167 App_Exception.Raise_Exception;
168 END IF;
169
170 Check_Constraints;
171 ELSIF (p_action = 'UPDATE') THEN
172 -- Call all the procedures related to Before Update.
173 Null;
174 Check_Constraints;
175 ELSIF (p_action = 'DELETE') THEN
176 -- Call all the procedures related to Before Delete.
177 Null;
178 Check_Child_Existance;
179 ELSIF (p_action = 'VALIDATE_INSERT') THEN
180 IF Get_PK_For_Validation (
181 new_references.spcl_consideration_cat
182 ) THEN
183 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
184 Igs_Ge_Msg_Stack.Add;
185 App_Exception.Raise_Exception;
186 END IF;
187 Check_Constraints;
188 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
189 Check_Constraints;
190 ELSIF (p_action = 'VALIDATE_DELETE') THEN
191 Check_Child_Existance;
192 END IF;
193
194 /*
195 The (L_ROWID := null) was added by ijeddy on the 12-apr-2003 as
196 part of the bug fix for bug no 2868726, (Uniqueness Check at Item Level)
197 */
198
199 L_ROWID := null;
200 END Before_DML;
201
202
203 procedure INSERT_ROW (
204 X_ROWID in out NOCOPY VARCHAR2,
205 X_SPCL_CONSIDERATION_CAT in VARCHAR2,
206 X_DESCRIPTION in VARCHAR2,
207 X_EXPLANATION in VARCHAR2,
208 X_CLOSED_IND in VARCHAR2,
209 X_MODE in VARCHAR2 default 'R'
210 ) as
211 cursor C is select ROWID from IGS_AS_SPCL_CONS_CAT
212 where SPCL_CONSIDERATION_CAT = X_SPCL_CONSIDERATION_CAT;
213 X_LAST_UPDATE_DATE DATE;
214 X_LAST_UPDATED_BY NUMBER;
215 X_LAST_UPDATE_LOGIN NUMBER;
216 begin
217 X_LAST_UPDATE_DATE := SYSDATE;
218 if(X_MODE = 'I') then
219 X_LAST_UPDATED_BY := 1;
220 X_LAST_UPDATE_LOGIN := 0;
221 elsif (X_MODE = 'R') then
222 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
223 if X_LAST_UPDATED_BY is NULL then
224 X_LAST_UPDATED_BY := -1;
225 end if;
226 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
227 if X_LAST_UPDATE_LOGIN is NULL then
228 X_LAST_UPDATE_LOGIN := -1;
229 end if;
230 else
231 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
232 Igs_Ge_Msg_Stack.Add;
233 app_exception.raise_exception;
234 end if;
235 Before_DML(
236 p_action=>'INSERT',
237 x_rowid=>X_ROWID,
238 x_closed_ind=> NVL(X_CLOSED_IND,'N'),
239 x_description=>X_DESCRIPTION,
240 x_explanation=>X_EXPLANATION,
241 x_spcl_consideration_cat=>X_SPCL_CONSIDERATION_CAT,
242 x_creation_date=>X_LAST_UPDATE_DATE,
243 x_created_by=>X_LAST_UPDATED_BY,
244 x_last_update_date=>X_LAST_UPDATE_DATE,
245 x_last_updated_by=>X_LAST_UPDATED_BY,
246 x_last_update_login=>X_LAST_UPDATE_LOGIN
247 );
248
249 insert into IGS_AS_SPCL_CONS_CAT (
250 SPCL_CONSIDERATION_CAT,
251 DESCRIPTION,
252 EXPLANATION,
253 CLOSED_IND,
254 CREATION_DATE,
255 CREATED_BY,
256 LAST_UPDATE_DATE,
257 LAST_UPDATED_BY,
258 LAST_UPDATE_LOGIN
259 ) values (
260 NEW_REFERENCES.SPCL_CONSIDERATION_CAT,
261 NEW_REFERENCES.DESCRIPTION,
262 NEW_REFERENCES.EXPLANATION,
263 NEW_REFERENCES.CLOSED_IND,
264 X_LAST_UPDATE_DATE,
265 X_LAST_UPDATED_BY,
266 X_LAST_UPDATE_DATE,
267 X_LAST_UPDATED_BY,
268 X_LAST_UPDATE_LOGIN
269 );
270
271 open c;
272 fetch c into X_ROWID;
273 if (c%notfound) then
274 close c;
275 raise no_data_found;
276 end if;
277 close c;
278 end INSERT_ROW;
279
280 procedure LOCK_ROW (
281 X_ROWID in VARCHAR2,
282 X_SPCL_CONSIDERATION_CAT in VARCHAR2,
283 X_DESCRIPTION in VARCHAR2,
284 X_EXPLANATION in VARCHAR2,
285 X_CLOSED_IND in VARCHAR2
286 ) as
287 cursor c1 is select
288 DESCRIPTION,
289 EXPLANATION,
290 CLOSED_IND
291 from IGS_AS_SPCL_CONS_CAT
292 where ROWID = X_ROWID for update nowait;
293 tlinfo c1%rowtype;
294
295 begin
296 open c1;
297 fetch c1 into tlinfo;
298 if (c1%notfound) then
299 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
300 Igs_Ge_Msg_Stack.Add;
301 close c1;
302 app_exception.raise_exception;
303 return;
304 end if;
305 close c1;
306
307 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
308 AND (tlinfo.EXPLANATION = X_EXPLANATION)
309 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
310 ) then
311 null;
312 else
313 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
314 Igs_Ge_Msg_Stack.Add;
315 app_exception.raise_exception;
316 end if;
317 return;
318 end LOCK_ROW;
319
320 procedure UPDATE_ROW (
321 X_ROWID in VARCHAR2,
322 X_SPCL_CONSIDERATION_CAT in VARCHAR2,
323 X_DESCRIPTION in VARCHAR2,
324 X_EXPLANATION in VARCHAR2,
325 X_CLOSED_IND in VARCHAR2,
326 X_MODE in VARCHAR2 default 'R'
327 ) as
328 X_LAST_UPDATE_DATE DATE;
329 X_LAST_UPDATED_BY NUMBER;
330 X_LAST_UPDATE_LOGIN NUMBER;
331 begin
332 X_LAST_UPDATE_DATE := SYSDATE;
333 if(X_MODE = 'I') then
334 X_LAST_UPDATED_BY := 1;
335 X_LAST_UPDATE_LOGIN := 0;
336 elsif (X_MODE = 'R') then
337 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
338 if X_LAST_UPDATED_BY is NULL then
339 X_LAST_UPDATED_BY := -1;
340 end if;
341 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
342 if X_LAST_UPDATE_LOGIN is NULL then
343 X_LAST_UPDATE_LOGIN := -1;
344 end if;
345 else
346 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
347 Igs_Ge_Msg_Stack.Add;
348 app_exception.raise_exception;
349 end if;
350 Before_DML(
351 p_action=>'UPDATE',
352 x_rowid=>X_ROWID,
353 x_closed_ind=>X_CLOSED_IND,
354 x_description=>X_DESCRIPTION,
355 x_explanation=>X_EXPLANATION,
356 x_spcl_consideration_cat=>X_SPCL_CONSIDERATION_CAT,
357 x_creation_date=>X_LAST_UPDATE_DATE,
358 x_created_by=>X_LAST_UPDATED_BY,
359 x_last_update_date=>X_LAST_UPDATE_DATE,
360 x_last_updated_by=>X_LAST_UPDATED_BY,
361 x_last_update_login=>X_LAST_UPDATE_LOGIN
362 );
363
364 update IGS_AS_SPCL_CONS_CAT set
365 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
366 EXPLANATION = NEW_REFERENCES.EXPLANATION,
367 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
368 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
369 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
370 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
371 where ROWID = X_ROWID;
372
373 if (sql%notfound) then
374 raise no_data_found;
375 end if;
376
377 end UPDATE_ROW;
378
379 procedure ADD_ROW (
380 X_ROWID in out NOCOPY VARCHAR2,
381 X_SPCL_CONSIDERATION_CAT in VARCHAR2,
382 X_DESCRIPTION in VARCHAR2,
383 X_EXPLANATION in VARCHAR2,
384 X_CLOSED_IND in VARCHAR2,
385 X_MODE in VARCHAR2 default 'R'
386 ) as
387 cursor c1 is select rowid from IGS_AS_SPCL_CONS_CAT
388 where SPCL_CONSIDERATION_CAT = X_SPCL_CONSIDERATION_CAT
389 ;
390 begin
391 open c1;
392 fetch c1 into X_ROWID;
393 if (c1%notfound) then
394 close c1;
395 INSERT_ROW (
396 X_ROWID,
397 X_SPCL_CONSIDERATION_CAT,
398 X_DESCRIPTION,
399 X_EXPLANATION,
400 X_CLOSED_IND,
401 X_MODE);
402 return;
403 end if;
404 close c1;
405 UPDATE_ROW (
406 X_ROWID,
407 X_SPCL_CONSIDERATION_CAT,
408 X_DESCRIPTION,
409 X_EXPLANATION,
410 X_CLOSED_IND,
411 X_MODE);
412 end ADD_ROW;
413
414 procedure DELETE_ROW (
415 X_ROWID in VARCHAR2) as
416 begin
417 Before_DML(
418 p_action => 'DELETE',
419 x_rowid => X_ROWID
420 );
421 delete from IGS_AS_SPCL_CONS_CAT
422 where ROWID = X_ROWID;
423 if (sql%notfound) then
424 raise no_data_found;
425 end if;
426 end DELETE_ROW;
427
428 end IGS_AS_SPCL_CONS_CAT_PKG;