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