[Home] [Help]
PACKAGE BODY: APPS.IGS_EN_NOM_CMPL_PRD_PKG
Source
1 PACKAGE BODY igs_en_nom_cmpl_prd_pkg AS
2 /* $Header: IGSEI61B.pls 115.7 2003/02/20 08:43:09 prraj noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_en_nom_cmpl_prd%ROWTYPE;
6 new_references igs_en_nom_cmpl_prd%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_completion_perd 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 || Created By : [email protected]
22 || Created On : 19-DEC-2001
23 || Purpose : Initialises the Old and New references for the columns of the table.
24 || Known limitations, enhancements or remarks :
25 || Change History :
26 || Who When What
27 || (reverse chronological order - newest change first)
28 */
29
30 CURSOR cur_old_ref_values IS
31 SELECT *
32 FROM IGS_EN_NOM_CMPL_PRD
33 WHERE rowid = x_rowid;
34
35 BEGIN
36
37 l_rowid := x_rowid;
38
39 -- Code for setting the Old and New Reference Values.
40 -- Populate Old Values.
41 OPEN cur_old_ref_values;
42 FETCH cur_old_ref_values INTO old_references;
43 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
44 CLOSE cur_old_ref_values;
45 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
46 igs_ge_msg_stack.add;
47 app_exception.raise_exception;
48 RETURN;
49 END IF;
50 CLOSE cur_old_ref_values;
51
52 -- Populate New Values.
53 new_references.completion_perd := x_completion_perd;
54 new_references.description := x_description;
55 new_references.closed_ind := x_closed_ind;
56
57 IF (p_action = 'UPDATE') THEN
58 new_references.creation_date := old_references.creation_date;
59 new_references.created_by := old_references.created_by;
60 ELSE
61 new_references.creation_date := x_creation_date;
62 new_references.created_by := x_created_by;
63 END IF;
64
65 new_references.last_update_date := x_last_update_date;
66 new_references.last_updated_by := x_last_updated_by;
67 new_references.last_update_login := x_last_update_login;
68
69 END set_column_values;
70
71
72 FUNCTION get_pk_for_validation (
73 x_completion_perd IN VARCHAR2
74 ) RETURN BOOLEAN AS
75 /*
76 || Created By : [email protected]
77 || Created On : 19-DEC-2001
78 || Purpose : Validates the Primary Key of the table.
79 || Known limitations, enhancements or remarks :
80 || Change History :
81 || Who When What
82 || (reverse chronological order - newest change first)
83 */
84 CURSOR cur_rowid IS
85 SELECT rowid
86 FROM igs_en_nom_cmpl_prd
87 WHERE completion_perd = x_completion_perd;
88
89 lv_rowid cur_rowid%RowType;
90
91 BEGIN
92
93 OPEN cur_rowid;
94 FETCH cur_rowid INTO lv_rowid;
95 IF (cur_rowid%FOUND) THEN
96 CLOSE cur_rowid;
97 RETURN(TRUE);
98 ELSE
99 CLOSE cur_rowid;
100 RETURN(FALSE);
101 END IF;
102
103 END get_pk_for_validation;
104
105
106
107 PROCEDURE before_dml (
108 p_action IN VARCHAR2,
109 x_rowid IN VARCHAR2 DEFAULT NULL,
110 x_completion_perd IN VARCHAR2 DEFAULT NULL,
111 x_description IN VARCHAR2 DEFAULT NULL,
112 x_closed_ind IN VARCHAR2 DEFAULT NULL,
113 x_creation_date IN DATE DEFAULT NULL,
114 x_created_by IN NUMBER DEFAULT NULL,
115 x_last_update_date IN DATE DEFAULT NULL,
116 x_last_updated_by IN NUMBER DEFAULT NULL,
117 x_last_update_login IN NUMBER DEFAULT NULL
118 ) AS
119 /*
120 || Created By : [email protected]
121 || Created On : 19-DEC-2001
122 || Purpose : Initialises the columns, Checks Constraints, Calls the
123 || Trigger Handlers for the table, before any DML operation.
124 || Known limitations, enhancements or remarks :
125 || Change History :
126 || Who When What
127 || (reverse chronological order - newest change first)
128 ||smaddali 22-feb-2002 added calls to check_child_existance procedure
129 || for delete and validate_delete actions bug#2237194 ARCR043 ccr build
130 */
131 BEGIN
132
133 set_column_values (
134 p_action,
135 x_rowid,
136 x_completion_perd,
137 x_description,
138 x_closed_ind,
139 x_creation_date,
140 x_created_by,
141 x_last_update_date,
142 x_last_updated_by,
143 x_last_update_login
144 );
145
146 IF (p_action = 'INSERT') THEN
147 -- Call all the procedures related to Before Insert.
148 IF ( get_pk_for_validation(
149 new_references.completion_perd
150 )
151 ) THEN
152 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
153 igs_ge_msg_stack.add;
154 app_exception.raise_exception;
155 END IF;
156
157 ELSIF (p_action = 'VALIDATE_INSERT') THEN
158 -- Call all the procedures related to Before Insert.
159 IF ( get_pk_for_validation (
160 new_references.completion_perd
161 )
162 ) THEN
163 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
164 igs_ge_msg_stack.add;
165 app_exception.raise_exception;
166 END IF;
167
168 END IF;
169
170 END before_dml;
171
172
173 PROCEDURE insert_row (
174 x_rowid IN OUT NOCOPY VARCHAR2,
175 x_completion_perd IN VARCHAR2,
176 x_description IN VARCHAR2,
177 x_closed_ind IN VARCHAR2,
178 x_mode IN VARCHAR2 DEFAULT 'R'
179 ) AS
180 /*
181 || Created By : [email protected]
182 || Created On : 19-DEC-2001
183 || Purpose : Handles the INSERT DML logic for the table.
184 || Known limitations, enhancements or remarks :
185 || Change History :
186 || Who When What
187 || (reverse chronological order - newest change first)
188 */
189 CURSOR c IS
190 SELECT rowid
191 FROM igs_en_nom_cmpl_prd
192 WHERE completion_perd = x_completion_perd;
193
194 x_last_update_date DATE;
195 x_last_updated_by NUMBER;
196 x_last_update_login NUMBER;
197
198 BEGIN
199
200 x_last_update_date := SYSDATE;
201 IF (x_mode = 'I') THEN
202 x_last_updated_by := 1;
203 x_last_update_login := 0;
204 ELSIF (x_mode = 'R') THEN
205 x_last_updated_by := fnd_global.user_id;
206 IF (x_last_updated_by IS NULL) THEN
207 x_last_updated_by := -1;
208 END IF;
209 x_last_update_login := fnd_global.login_id;
210 IF (x_last_update_login IS NULL) THEN
211 x_last_update_login := -1;
212 END IF;
213 ELSE
214 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
215 igs_ge_msg_stack.add;
216 app_exception.raise_exception;
217 END IF;
218
219 before_dml(
220 p_action => 'INSERT',
221 x_rowid => x_rowid,
222 x_completion_perd => x_completion_perd,
223 x_description => x_description,
224 x_closed_ind => x_closed_ind,
225 x_creation_date => x_last_update_date,
226 x_created_by => x_last_updated_by,
227 x_last_update_date => x_last_update_date,
228 x_last_updated_by => x_last_updated_by,
229 x_last_update_login => x_last_update_login
230 );
231
232 INSERT INTO igs_en_nom_cmpl_prd (
233 completion_perd,
234 description,
235 closed_ind,
236 creation_date,
237 created_by,
238 last_update_date,
239 last_updated_by,
240 last_update_login
241 ) VALUES (
242 new_references.completion_perd,
243 new_references.description,
244 new_references.closed_ind,
245 x_last_update_date,
246 x_last_updated_by,
247 x_last_update_date,
248 x_last_updated_by,
249 x_last_update_login
250 );
251
252 OPEN c;
253 FETCH c INTO x_rowid;
254 IF (c%NOTFOUND) THEN
255 CLOSE c;
256 RAISE NO_DATA_FOUND;
257 END IF;
258 CLOSE c;
259
260 END insert_row;
261
262
263 PROCEDURE lock_row (
264 x_rowid IN VARCHAR2,
265 x_completion_perd IN VARCHAR2,
266 x_description IN VARCHAR2,
267 x_closed_ind IN VARCHAR2
268 ) AS
269 /*
270 || Created By : [email protected]
271 || Created On : 19-DEC-2001
272 || Purpose : Handles the LOCK mechanism for the table.
273 || Known limitations, enhancements or remarks :
274 || Change History :
275 || Who When What
276 || (reverse chronological order - newest change first)
277 */
278 CURSOR c1 IS
279 SELECT
280 description,
281 closed_ind
282 FROM igs_en_nom_cmpl_prd
283 WHERE rowid = x_rowid
284 FOR UPDATE NOWAIT;
285
286 tlinfo c1%ROWTYPE;
287
288 BEGIN
289
290 OPEN c1;
291 FETCH c1 INTO tlinfo;
292 IF (c1%notfound) THEN
293 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
294 igs_ge_msg_stack.add;
295 CLOSE c1;
296 app_exception.raise_exception;
297 RETURN;
298 END IF;
299 CLOSE c1;
300
301 IF (
302 (tlinfo.description = x_description)
303 AND (tlinfo.closed_ind = x_closed_ind)
304 ) THEN
305 NULL;
306 ELSE
307 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
308 igs_ge_msg_stack.add;
309 app_exception.raise_exception;
310 END IF;
311
312 RETURN;
313
314 END lock_row;
315
316
317 PROCEDURE update_row (
318 x_rowid IN VARCHAR2,
319 x_completion_perd IN VARCHAR2,
320 x_description IN VARCHAR2,
321 x_closed_ind IN VARCHAR2,
322 x_mode IN VARCHAR2 DEFAULT 'R'
323 ) AS
324 /*
325 || Created By : [email protected]
326 || Created On : 19-DEC-2001
327 || Purpose : Handles the UPDATE DML logic for the table.
328 || Known limitations, enhancements or remarks :
329 || Change History :
330 || Who When What
331 || (reverse chronological order - newest change first)
332 */
333 x_last_update_date DATE ;
334 x_last_updated_by NUMBER;
335 x_last_update_login NUMBER;
336
337 BEGIN
338
339 x_last_update_date := SYSDATE;
340 IF (X_MODE = 'I') THEN
341 x_last_updated_by := 1;
342 x_last_update_login := 0;
343 ELSIF (x_mode = 'R') THEN
344 x_last_updated_by := fnd_global.user_id;
345 IF x_last_updated_by IS NULL THEN
346 x_last_updated_by := -1;
347 END IF;
348 x_last_update_login := fnd_global.login_id;
349 IF (x_last_update_login IS NULL) THEN
350 x_last_update_login := -1;
351 END IF;
352 ELSE
353 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
354 igs_ge_msg_stack.add;
355 app_exception.raise_exception;
356 END IF;
357
358 before_dml(
359 p_action => 'UPDATE',
360 x_rowid => x_rowid,
361 x_completion_perd => x_completion_perd,
362 x_description => x_description,
363 x_closed_ind => x_closed_ind,
364 x_creation_date => x_last_update_date,
365 x_created_by => x_last_updated_by,
366 x_last_update_date => x_last_update_date,
367 x_last_updated_by => x_last_updated_by,
368 x_last_update_login => x_last_update_login
369 );
370
371 UPDATE igs_en_nom_cmpl_prd
372 SET
373 description = new_references.description,
374 closed_ind = new_references.closed_ind,
375 last_update_date = x_last_update_date,
376 last_updated_by = x_last_updated_by,
377 last_update_login = x_last_update_login
378 WHERE rowid = x_rowid;
379
380 IF (SQL%NOTFOUND) THEN
381 RAISE NO_DATA_FOUND;
382 END IF;
383
384 END update_row;
385
386
387 PROCEDURE add_row (
388 x_rowid IN OUT NOCOPY VARCHAR2,
389 x_completion_perd IN VARCHAR2,
390 x_description IN VARCHAR2,
391 x_closed_ind IN VARCHAR2,
392 x_mode IN VARCHAR2 DEFAULT 'R'
393 ) AS
394 /*
395 || Created By : [email protected]
396 || Created On : 19-DEC-2001
397 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
398 || Known limitations, enhancements or remarks :
399 || Change History :
400 || Who When What
401 || (reverse chronological order - newest change first)
402 */
403 CURSOR c1 IS
404 SELECT rowid
405 FROM igs_en_nom_cmpl_prd
406 WHERE completion_perd = x_completion_perd;
407
408 BEGIN
409
410 OPEN c1;
411 FETCH c1 INTO x_rowid;
412 IF (c1%NOTFOUND) THEN
413 CLOSE c1;
414
415 insert_row (
416 x_rowid,
417 x_completion_perd,
418 x_description,
419 x_closed_ind,
420 x_mode
421 );
422 RETURN;
423 END IF;
424 CLOSE c1;
425
426 update_row (
427 x_rowid,
428 x_completion_perd,
429 x_description,
430 x_closed_ind,
431 x_mode
432 );
433
434 END add_row;
435
436
437 END igs_en_nom_cmpl_prd_pkg;