[Home] [Help]
PACKAGE BODY: APPS.IGS_CA_DA_OVD_VALS_PKG
Source
1 PACKAGE BODY igs_ca_da_ovd_vals_pkg AS
2 /* $Header: IGSCI20B.pls 120.1 2005/08/11 05:48:17 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_ca_da_ovd_vals%ROWTYPE;
6 new_references igs_ca_da_ovd_vals%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2,
11 x_ovrd_val_id IN NUMBER,
12 x_sys_date_type IN VARCHAR2,
13 x_element_code IN VARCHAR2,
14 x_element_code_value IN VARCHAR2,
15 x_date_alias IN VARCHAR2,
16 x_creation_date IN DATE,
17 x_created_by IN NUMBER,
18 x_last_update_date IN DATE,
19 x_last_updated_by IN NUMBER,
20 x_last_update_login IN NUMBER
21 ) AS
22 /*
23 || Created By : [email protected]
24 || Created On : 05-OCT-2004
25 || Purpose : Initialises the Old and New references for the columns of the table.
26 || Known limitations, enhancements or remarks :
27 || Change History :
28 || Who When What
29 || (reverse chronological order - newest change first)
30 */
31
32 CURSOR cur_old_ref_values IS
33 SELECT *
34 FROM igs_ca_da_ovd_vals
35 WHERE rowid = x_rowid;
36
37 BEGIN
38
39 l_rowid := x_rowid;
40
41 -- Code for setting the Old and New Reference Values.
42 -- Populate Old Values.
43 OPEN cur_old_ref_values;
44 FETCH cur_old_ref_values INTO old_references;
45 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
46 CLOSE cur_old_ref_values;
47 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
48 igs_ge_msg_stack.add;
49 app_exception.raise_exception;
50 RETURN;
51 END IF;
52 CLOSE cur_old_ref_values;
53
54 -- Populate New Values.
55 new_references.ovrd_val_id := x_ovrd_val_id;
56 new_references.sys_date_type := x_sys_date_type;
57 new_references.element_code := x_element_code;
58 new_references.element_code_value := x_element_code_value;
59 new_references.date_alias := x_date_alias;
60
61 IF (p_action = 'UPDATE') THEN
62 new_references.creation_date := old_references.creation_date;
63 new_references.created_by := old_references.created_by;
64 ELSE
65 new_references.creation_date := x_creation_date;
66 new_references.created_by := x_created_by;
67 END IF;
68
69 new_references.last_update_date := x_last_update_date;
70 new_references.last_updated_by := x_last_updated_by;
71 new_references.last_update_login := x_last_update_login;
72
73 END set_column_values;
74
75
76 PROCEDURE check_parent_existance AS
77 /*
78 || Created By : [email protected]
79 || Created On : 05-OCT-2004
80 || Purpose : Checks for the existance of Parent records.
81 || Known limitations, enhancements or remarks :
82 || Change History :
83 || Who When What
84 || (reverse chronological order - newest change first)
85 */
86 BEGIN
87
88 IF (((old_references.sys_date_type = new_references.sys_date_type)) OR
89 ((new_references.sys_date_type IS NULL))) THEN
90 NULL;
91 ELSIF NOT igs_ca_da_configs_pkg.get_pk_for_validation (
92 new_references.sys_date_type
93 ) THEN
94 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
95 igs_ge_msg_stack.add;
96 app_exception.raise_exception;
97 END IF;
98
99 END check_parent_existance;
100
101
102 FUNCTION get_pk_for_validation (
103 x_ovrd_val_id IN NUMBER
104 ) RETURN BOOLEAN AS
105 /*
106 || Created By : [email protected]
107 || Created On : 05-OCT-2004
108 || Purpose : Validates the Primary Key of the table.
109 || Known limitations, enhancements or remarks :
110 || Change History :
111 || Who When What
112 || (reverse chronological order - newest change first)
113 */
114 CURSOR cur_rowid IS
115 SELECT rowid
116 FROM igs_ca_da_ovd_vals
117 WHERE ovrd_val_id = x_ovrd_val_id
118 FOR UPDATE NOWAIT;
119
120 lv_rowid cur_rowid%RowType;
121
122 BEGIN
123
124 OPEN cur_rowid;
125 FETCH cur_rowid INTO lv_rowid;
126 IF (cur_rowid%FOUND) THEN
127 CLOSE cur_rowid;
128 RETURN(TRUE);
129 ELSE
130 CLOSE cur_rowid;
131 RETURN(FALSE);
132 END IF;
133
134 END get_pk_for_validation;
135
136
137 PROCEDURE get_fk_igs_ca_da_configs (
138 x_sys_date_type IN VARCHAR2
139 ) AS
140 /*
141 || Created By : [email protected]
142 || Created On : 05-OCT-2004
143 || Purpose : Validates the Foreign Keys for the table.
144 || Known limitations, enhancements or remarks :
145 || Change History :
146 || Who When What
147 || (reverse chronological order - newest change first)
148 */
149 CURSOR cur_rowid IS
150 SELECT rowid
151 FROM igs_ca_da_ovd_vals
152 WHERE ((sys_date_type = x_sys_date_type));
153
154 lv_rowid cur_rowid%RowType;
155
156 BEGIN
157
158 OPEN cur_rowid;
159 FETCH cur_rowid INTO lv_rowid;
160 IF (cur_rowid%FOUND) THEN
161 CLOSE cur_rowid;
162 fnd_message.set_name ('IGS', 'IGS_FOREIGN_KEY_REFERENCE');
163 igs_ge_msg_stack.add;
164 app_exception.raise_exception;
165 RETURN;
166 END IF;
167 CLOSE cur_rowid;
168
169 END get_fk_igs_ca_da_configs;
170
171
172 PROCEDURE before_dml (
173 p_action IN VARCHAR2,
174 x_rowid IN VARCHAR2,
175 x_ovrd_val_id IN NUMBER,
176 x_sys_date_type IN VARCHAR2,
177 x_element_code IN VARCHAR2,
178 x_element_code_value IN VARCHAR2,
179 x_date_alias IN VARCHAR2,
180 x_creation_date IN DATE,
181 x_created_by IN NUMBER,
182 x_last_update_date IN DATE,
183 x_last_updated_by IN NUMBER,
184 x_last_update_login IN NUMBER
185 ) AS
186 /*
187 || Created By : [email protected]
188 || Created On : 05-OCT-2004
189 || Purpose : Initialises the columns, Checks Constraints, Calls the
190 || Trigger Handlers for the table, before any DML operation.
191 || Known limitations, enhancements or remarks :
192 || Change History :
193 || Who When What
194 || (reverse chronological order - newest change first)
195 */
196 BEGIN
197
198 set_column_values (
199 p_action,
200 x_rowid,
201 x_ovrd_val_id,
202 x_sys_date_type,
203 x_element_code,
204 x_element_code_value,
205 x_date_alias,
206 x_creation_date,
207 x_created_by,
208 x_last_update_date,
209 x_last_updated_by,
210 x_last_update_login
211 );
212
213 IF (p_action = 'INSERT') THEN
214 -- Call all the procedures related to Before Insert.
215 IF ( get_pk_for_validation(
216 new_references.ovrd_val_id
217 )
218 ) THEN
219 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
220 igs_ge_msg_stack.add;
221 app_exception.raise_exception;
222 END IF;
223 check_parent_existance;
224 ELSIF (p_action = 'UPDATE') THEN
225 -- Call all the procedures related to Before Update.
226 check_parent_existance;
227 ELSIF (p_action = 'VALIDATE_INSERT') THEN
228 -- Call all the procedures related to Before Insert.
229 IF ( get_pk_for_validation (
230 new_references.ovrd_val_id
231 )
232 ) THEN
233 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
234 igs_ge_msg_stack.add;
235 app_exception.raise_exception;
236 END IF;
237 END IF;
238
239 END before_dml;
240
241
242 PROCEDURE insert_row (
243 x_rowid IN OUT NOCOPY VARCHAR2,
244 x_ovrd_val_id IN OUT NOCOPY NUMBER,
245 x_sys_date_type IN VARCHAR2,
246 x_element_code IN VARCHAR2,
247 x_element_code_value IN VARCHAR2,
248 x_date_alias IN VARCHAR2,
249 x_mode IN VARCHAR2
250 ) AS
251 /*
252 || Created By : [email protected]
253 || Created On : 05-OCT-2004
254 || Purpose : Handles the INSERT DML logic for the table.
255 || Known limitations, enhancements or remarks :
256 || Change History :
257 || Who When What
258 || (reverse chronological order - newest change first)
259 */
260
261 x_last_update_date DATE;
262 x_last_updated_by NUMBER;
263 x_last_update_login NUMBER;
264
265 BEGIN
266
267 x_last_update_date := SYSDATE;
268 IF (x_mode = 'I') THEN
269 x_last_updated_by := 1;
270 x_last_update_login := 0;
271 ELSIF (x_mode = 'R') THEN
272 x_last_updated_by := fnd_global.user_id;
273 IF (x_last_updated_by IS NULL) THEN
274 x_last_updated_by := -1;
275 END IF;
276 x_last_update_login := fnd_global.login_id;
277 IF (x_last_update_login IS NULL) THEN
278 x_last_update_login := -1;
279 END IF;
280 ELSE
281 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
282 fnd_message.set_token ('ROUTINE', 'IGS_CA_DA_OVD_VALS_PKG.INSERT_ROW');
283 igs_ge_msg_stack.add;
284 app_exception.raise_exception;
285 END IF;
286
287 x_ovrd_val_id := NULL;
288
289 before_dml(
290 p_action => 'INSERT',
291 x_rowid => x_rowid,
292 x_ovrd_val_id => x_ovrd_val_id,
293 x_sys_date_type => x_sys_date_type,
294 x_element_code => x_element_code,
295 x_element_code_value => x_element_code_value,
296 x_date_alias => x_date_alias,
297 x_creation_date => x_last_update_date,
298 x_created_by => x_last_updated_by,
299 x_last_update_date => x_last_update_date,
300 x_last_updated_by => x_last_updated_by,
301 x_last_update_login => x_last_update_login
302 );
303
304 INSERT INTO igs_ca_da_ovd_vals (
305 ovrd_val_id,
306 sys_date_type,
307 element_code,
308 element_code_value,
309 date_alias,
310 creation_date,
311 created_by,
312 last_update_date,
313 last_updated_by,
314 last_update_login
315 ) VALUES (
316 igs_ca_da_ovd_vals_s.NEXTVAL,
317 new_references.sys_date_type,
318 new_references.element_code,
319 new_references.element_code_value,
320 new_references.date_alias,
321 x_last_update_date,
322 x_last_updated_by,
323 x_last_update_date,
324 x_last_updated_by,
325 x_last_update_login
326 ) RETURNING ROWID, ovrd_val_id INTO x_rowid, x_ovrd_val_id;
327
328 END insert_row;
329
330
331 PROCEDURE lock_row (
332 x_rowid IN VARCHAR2,
333 x_ovrd_val_id IN NUMBER,
334 x_sys_date_type IN VARCHAR2,
335 x_element_code IN VARCHAR2,
336 x_element_code_value IN VARCHAR2,
337 x_date_alias IN VARCHAR2
338 ) AS
339 /*
340 || Created By : [email protected]
341 || Created On : 05-OCT-2004
342 || Purpose : Handles the LOCK mechanism for the table.
343 || Known limitations, enhancements or remarks :
344 || Change History :
345 || Who When What
346 || (reverse chronological order - newest change first)
347 */
348 CURSOR c1 IS
349 SELECT
350 sys_date_type,
351 element_code,
352 element_code_value,
353 date_alias
354 FROM igs_ca_da_ovd_vals
355 WHERE rowid = x_rowid
356 FOR UPDATE NOWAIT;
357
358 tlinfo c1%ROWTYPE;
359
360 BEGIN
361
362 OPEN c1;
363 FETCH c1 INTO tlinfo;
364 IF (c1%notfound) THEN
365 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
366 igs_ge_msg_stack.add;
367 CLOSE c1;
368 app_exception.raise_exception;
369 RETURN;
370 END IF;
371 CLOSE c1;
372
373 IF (
374 (tlinfo.sys_date_type = x_sys_date_type)
375 AND (tlinfo.element_code = x_element_code)
376 AND (tlinfo.element_code_value = x_element_code_value)
377 AND (tlinfo.date_alias = x_date_alias)
378 ) THEN
379 NULL;
380 ELSE
381 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
382 igs_ge_msg_stack.add;
383 app_exception.raise_exception;
384 END IF;
385
386 RETURN;
387
388 END lock_row;
389
390
391 PROCEDURE update_row (
392 x_rowid IN VARCHAR2,
393 x_ovrd_val_id IN NUMBER,
394 x_sys_date_type IN VARCHAR2,
395 x_element_code IN VARCHAR2,
396 x_element_code_value IN VARCHAR2,
397 x_date_alias IN VARCHAR2,
398 x_mode IN VARCHAR2
399 ) AS
400 /*
401 || Created By : [email protected]
402 || Created On : 05-OCT-2004
403 || Purpose : Handles the UPDATE DML logic for the table.
404 || Known limitations, enhancements or remarks :
405 || Change History :
406 || Who When What
407 || (reverse chronological order - newest change first)
408 */
409 x_last_update_date DATE ;
410 x_last_updated_by NUMBER;
411 x_last_update_login NUMBER;
412
413 BEGIN
414
415 x_last_update_date := SYSDATE;
416 IF (X_MODE = 'I') THEN
417 x_last_updated_by := 1;
418 x_last_update_login := 0;
419 ELSIF (x_mode = 'R') THEN
420 x_last_updated_by := fnd_global.user_id;
421 IF x_last_updated_by IS NULL THEN
422 x_last_updated_by := -1;
423 END IF;
424 x_last_update_login := fnd_global.login_id;
425 IF (x_last_update_login IS NULL) THEN
426 x_last_update_login := -1;
427 END IF;
428 ELSE
429 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
430 fnd_message.set_token ('ROUTINE', 'IGS_CA_DA_OVD_VALS_PKG.UPDATE_ROW');
431 igs_ge_msg_stack.add;
432 app_exception.raise_exception;
433 END IF;
434
435 before_dml(
436 p_action => 'UPDATE',
437 x_rowid => x_rowid,
438 x_ovrd_val_id => x_ovrd_val_id,
439 x_sys_date_type => x_sys_date_type,
440 x_element_code => x_element_code,
441 x_element_code_value => x_element_code_value,
442 x_date_alias => x_date_alias,
443 x_creation_date => x_last_update_date,
444 x_created_by => x_last_updated_by,
445 x_last_update_date => x_last_update_date,
446 x_last_updated_by => x_last_updated_by,
447 x_last_update_login => x_last_update_login
448 );
449
450 UPDATE igs_ca_da_ovd_vals
451 SET
452 sys_date_type = new_references.sys_date_type,
453 element_code = new_references.element_code,
454 element_code_value = new_references.element_code_value,
455 date_alias = new_references.date_alias,
456 last_update_date = x_last_update_date,
457 last_updated_by = x_last_updated_by,
458 last_update_login = x_last_update_login
459 WHERE rowid = x_rowid;
460
461 IF (SQL%NOTFOUND) THEN
462 RAISE NO_DATA_FOUND;
463 END IF;
464
465 END update_row;
466
467
468 PROCEDURE add_row (
469 x_rowid IN OUT NOCOPY VARCHAR2,
470 x_ovrd_val_id IN OUT NOCOPY NUMBER,
471 x_sys_date_type IN VARCHAR2,
472 x_element_code IN VARCHAR2,
473 x_element_code_value IN VARCHAR2,
474 x_date_alias IN VARCHAR2,
475 x_mode IN VARCHAR2
476 ) AS
477 /*
478 || Created By : [email protected]
479 || Created On : 05-OCT-2004
480 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
481 || Known limitations, enhancements or remarks :
482 || Change History :
483 || Who When What
484 || (reverse chronological order - newest change first)
485 */
486 CURSOR c1 IS
487 SELECT rowid
488 FROM igs_ca_da_ovd_vals
489 WHERE ovrd_val_id = x_ovrd_val_id;
490
491 BEGIN
492
493 OPEN c1;
494 FETCH c1 INTO x_rowid;
495 IF (c1%NOTFOUND) THEN
496 CLOSE c1;
497
498 insert_row (
499 x_rowid,
500 x_ovrd_val_id,
501 x_sys_date_type,
502 x_element_code,
503 x_element_code_value,
504 x_date_alias,
505 x_mode
506 );
507 RETURN;
508 END IF;
509 CLOSE c1;
510
511 update_row (
512 x_rowid,
513 x_ovrd_val_id,
514 x_sys_date_type,
515 x_element_code,
516 x_element_code_value,
517 x_date_alias,
518 x_mode
519 );
520
521 END add_row;
522
523
524 PROCEDURE delete_row (
525 x_rowid IN VARCHAR2
526 ) AS
527 /*
528 || Created By : [email protected]
529 || Created On : 05-OCT-2004
530 || Purpose : Handles the DELETE DML logic for the table.
531 || Known limitations, enhancements or remarks :
532 || Change History :
533 || Who When What
534 || (reverse chronological order - newest change first)
535 */
536 BEGIN
537
538 before_dml (
539 p_action => 'DELETE',
540 x_rowid => x_rowid
541 );
542
543 DELETE FROM igs_ca_da_ovd_vals
544 WHERE rowid = x_rowid;
545
546 IF (SQL%NOTFOUND) THEN
547 RAISE NO_DATA_FOUND;
548 END IF;
549
550 END delete_row;
551
552
553 END igs_ca_da_ovd_vals_pkg;