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