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