[Home] [Help]
PACKAGE BODY: APPS.IGS_PE_GOVCITIZEN_CD_PKG
Source
1 package body IGS_PE_GOVCITIZEN_CD_PKG AS
2 /* $Header: IGSNI06B.pls 115.3 2002/11/29 01:15:08 nsidana ship $ */
3
4 l_rowid VARCHAR2(25);
5
6 old_references IGS_PE_GOVCITIZEN_CD%RowType;
7
8 new_references IGS_PE_GOVCITIZEN_CD%RowType;
9
10
11
12 PROCEDURE Set_Column_Values (
13
14 p_action IN VARCHAR2,
15
16 x_rowid IN VARCHAR2 DEFAULT NULL,
17
18 x_govt_citizenship_cd IN NUMBER DEFAULT NULL,
19
20 x_description IN VARCHAR2 DEFAULT NULL,
21
22 x_closed_ind IN VARCHAR2 DEFAULT NULL,
23
24 x_creation_date IN DATE DEFAULT NULL,
25
26 x_created_by IN NUMBER DEFAULT NULL,
27
28 x_last_update_date IN DATE DEFAULT NULL,
29
30 x_last_updated_by IN NUMBER DEFAULT NULL,
31
32 x_last_update_login IN NUMBER DEFAULT NULL
33
34 ) AS
35
36
37
38 CURSOR cur_old_ref_values IS
39
40 SELECT *
41
42 FROM IGS_PE_GOVCITIZEN_CD
43
44 WHERE rowid = x_rowid;
45
46
47
48 BEGIN
49
50
51
52 l_rowid := x_rowid;
53
54
55
56 -- Code for setting the Old and New Reference Values.
57
58 -- Populate Old Values.
59
60 Open cur_old_ref_values;
61
62 Fetch cur_old_ref_values INTO old_references;
63
64 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
65
66 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
67 IGS_GE_MSG_STACK.ADD;
68
69
70 Close cur_old_ref_values;
71 App_Exception.Raise_Exception;
72 Return;
73
74 END IF;
75
76 Close cur_old_ref_values;
77
78
79
80 -- Populate New Values.
81
82 new_references.govt_citizenship_cd := x_govt_citizenship_cd;
83
84 new_references.description := x_description;
85
86 new_references.closed_ind := x_closed_ind;
87
88 IF (p_action = 'UPDATE') THEN
89
90 new_references.creation_date := old_references.creation_date;
91
92 new_references.created_by := old_references.created_by;
93
94 ELSE
95
96 new_references.creation_date := x_creation_date;
97
98 new_references.created_by := x_created_by;
99
100 END IF;
101
102 new_references.last_update_date := x_last_update_date;
103
104 new_references.last_updated_by := x_last_updated_by;
105
106 new_references.last_update_login := x_last_update_login;
107
108
109
110 END Set_Column_Values;
111
112
113
114 PROCEDURE BeforeRowInsertUpdate1(
115
116 p_inserting IN BOOLEAN DEFAULT FALSE,
117
118 p_updating IN BOOLEAN DEFAULT FALSE,
119
120 p_deleting IN BOOLEAN DEFAULT FALSE
121
122 ) AS
123
124 v_message_name varchar2(30);
125
126 BEGIN
127
128 -- Set audit details.
129
130
131
132 -- If being closed, validate citizenship codes.
133
134 IF p_updating AND
135
136 old_references.closed_ind <> new_references.closed_ind THEN
137
138 IF IGS_EN_VAL_GCC.enrp_val_gcc_upd (
139
140 new_references.govt_citizenship_cd,
141
142 new_references.closed_ind,
143
144 v_message_name ) = FALSE THEN
145
146 Fnd_Message.Set_Name('IGS', v_message_name);
147 IGS_GE_MSG_STACK.ADD;
148 App_Exception.Raise_Exception;
149 END IF;
150
151 END IF;
152
153
154
155
156
157 END BeforeRowInsertUpdate1;
158
159
160 PROCEDURE Check_Constraints (
161 Column_Name IN VARCHAR2 DEFAULT NULL,
162 Column_Value IN VARCHAR2 DEFAULT NULL
163 )
164 AS
165 BEGIN
166 IF column_name is null then
167 NULL;
168 ELSIF upper(Column_name) = 'CLOSED_IND' then
169 new_references.closed_ind := column_value;
170 ELSIF upper(Column_name) = 'GOVT_CITIZENSHIP_CD' then
171 new_references.govt_citizenship_cd := IGS_GE_NUMBER.to_num(column_value);
172 END IF;
173
174 IF upper(column_name) = 'CLOSED_IND' OR
175 column_name is null Then
176 IF new_references.closed_ind NOT IN ( 'Y' , 'N' ) Then
177 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
178 IGS_GE_MSG_STACK.ADD;
179 App_Exception.Raise_Exception;
180 END IF;
181 END IF;
182
183 IF upper(column_name) = 'GOVT_CITIZENSHIP_CD' OR
184 column_name is null Then
185 IF new_references.govt_citizenship_cd < 0 OR
186 new_references.govt_citizenship_cd > 9 Then
187 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
188 IGS_GE_MSG_STACK.ADD;
189 App_Exception.Raise_Exception;
190 END IF;
191 END IF;
192
193 END Check_Constraints;
194
195 PROCEDURE Check_Child_Existance AS
196
197 BEGIN
198 IGS_ST_CITIZENSHP_CD_PKG.GET_FK_IGS_PE_GOVCITIZEN_CD (
199
200 old_references.govt_citizenship_cd
201
202 );
203
204 END Check_Child_Existance;
205
206 FUNCTION Get_PK_For_Validation (
207
208 x_govt_citizenship_cd IN NUMBER
209
210 ) RETURN BOOLEAN AS
211
212 CURSOR cur_rowid IS
213
214 SELECT rowid
215
216 FROM IGS_PE_GOVCITIZEN_CD
217
218 WHERE govt_citizenship_cd = x_govt_citizenship_cd
219
220 FOR UPDATE NOWAIT;
221
222
223
224 lv_rowid cur_rowid%RowType;
225
226
227
228 BEGIN
229
230
231
232 Open cur_rowid;
233
234 Fetch cur_rowid INTO lv_rowid;
235 IF (cur_rowid%FOUND) THEN
236 Close cur_rowid;
237 Return (TRUE);
238 ELSE
239 Close cur_rowid;
240 Return (FALSE);
241 END IF;
242 END Get_PK_For_Validation;
243
244
245
246 PROCEDURE Before_DML (
247
248 p_action IN VARCHAR2,
249
250 x_rowid IN VARCHAR2 DEFAULT NULL,
251
252 x_govt_citizenship_cd IN NUMBER DEFAULT NULL,
253
254 x_description IN VARCHAR2 DEFAULT NULL,
255
256 x_closed_ind IN VARCHAR2 DEFAULT NULL,
257
258 x_creation_date IN DATE DEFAULT NULL,
259
260 x_created_by IN NUMBER DEFAULT NULL,
261
262 x_last_update_date IN DATE DEFAULT NULL,
263
264 x_last_updated_by IN NUMBER DEFAULT NULL,
265
266 x_last_update_login IN NUMBER DEFAULT NULL
267
268 ) AS
269
270 BEGIN
271
272
273
274 Set_Column_Values (
275
276 p_action,
277
278 x_rowid,
279
280 x_govt_citizenship_cd,
281
282 x_description,
283
284 x_closed_ind,
285
286 x_creation_date,
287
288 x_created_by,
289
290 x_last_update_date,
291
292 x_last_updated_by,
293
294 x_last_update_login
295
296 );
297
298
299
300 IF (p_action = 'INSERT') THEN
301 -- Call all the procedures related to Before Insert.
302 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
303 IF Get_PK_For_Validation (
304 new_references.govt_citizenship_cd ) THEN
305 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
306 IGS_GE_MSG_STACK.ADD;
307 App_Exception.Raise_Exception;
308 END IF;
309
310 Check_Constraints; -- if procedure present
311
312 ELSIF (p_action = 'UPDATE') THEN
313 -- Call all the procedures related to Before Update.
314 BeforeRowInsertUpdate1 ( p_updating => TRUE );
315
316 Check_Constraints; -- if procedure present
317
318
319 ELSIF (p_action = 'DELETE') THEN
320 -- Call all the procedures related to Before Delete.
321
322 Check_Child_Existance; -- if procedure present
323 ELSIF (p_action = 'VALIDATE_INSERT') THEN
324 IF Get_PK_For_Validation (
325 new_references.govt_citizenship_cd ) THEN
326 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
327 IGS_GE_MSG_STACK.ADD;
328 App_Exception.Raise_Exception;
329 END IF;
330
331 Check_Constraints; -- if procedure present
332 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
333 Check_Constraints; -- if procedure present
334
335 ELSIF (p_action = 'VALIDATE_DELETE') THEN
336 Check_Child_Existance; -- if procedure present
337 END IF;
338
339
340
341 END Before_DML;
342
343
344
345 PROCEDURE After_DML (
346
347 p_action IN VARCHAR2,
348
349 x_rowid IN VARCHAR2
350
351 ) AS
352
353 BEGIN
354
355
356
357 l_rowid := x_rowid;
358
359
360
361 IF (p_action = 'INSERT') THEN
362
363 -- Call all the procedures related to After Insert.
364
365 Null;
366
367 ELSIF (p_action = 'UPDATE') THEN
368
369 -- Call all the procedures related to After Update.
370
371 Null;
372
373 ELSIF (p_action = 'DELETE') THEN
374
375 -- Call all the procedures related to After Delete.
376
377 Null;
378
379 END IF;
380
381
382
383 END After_DML;
384
385
386 procedure INSERT_ROW (
387 X_ROWID in out NOCOPY VARCHAR2,
388 X_GOVT_CITIZENSHIP_CD in NUMBER,
389 X_DESCRIPTION in VARCHAR2,
390 X_CLOSED_IND in VARCHAR2,
391 X_MODE in VARCHAR2 default 'R'
392 ) AS
393 cursor C is select ROWID from IGS_PE_GOVCITIZEN_CD
394 where GOVT_CITIZENSHIP_CD = X_GOVT_CITIZENSHIP_CD;
395 X_LAST_UPDATE_DATE DATE;
396 X_LAST_UPDATED_BY NUMBER;
397 X_LAST_UPDATE_LOGIN NUMBER;
398 begin
399 X_LAST_UPDATE_DATE := SYSDATE;
400 if(X_MODE = 'I') then
401 X_LAST_UPDATED_BY := 1;
402 X_LAST_UPDATE_LOGIN := 0;
403 elsif (X_MODE = 'R') then
404 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
405 if X_LAST_UPDATED_BY is NULL then
406 X_LAST_UPDATED_BY := -1;
407 end if;
408 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
409 if X_LAST_UPDATE_LOGIN is NULL then
410 X_LAST_UPDATE_LOGIN := -1;
411 end if;
412 else
413 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
414 IGS_GE_MSG_STACK.ADD;
415 app_exception.raise_exception;
416 end if;
417
418 Before_DML(
419
420 p_action=>'INSERT',
421
422 x_rowid=>X_ROWID,
423
424 x_closed_ind=> NVL(X_CLOSED_IND,'N'),
425
426 x_description=>X_DESCRIPTION,
427
428 x_govt_citizenship_cd=>X_GOVT_CITIZENSHIP_CD,
429
430 x_creation_date=>X_LAST_UPDATE_DATE,
431
432 x_created_by=>X_LAST_UPDATED_BY,
433
434 x_last_update_date=>X_LAST_UPDATE_DATE,
435
436 x_last_updated_by=>X_LAST_UPDATED_BY,
437
438 x_last_update_login=>X_LAST_UPDATE_LOGIN
439
440 );
441
442
443 insert into IGS_PE_GOVCITIZEN_CD (
444 GOVT_CITIZENSHIP_CD,
445 DESCRIPTION,
446 CLOSED_IND,
447 CREATION_DATE,
448 CREATED_BY,
449 LAST_UPDATE_DATE,
450 LAST_UPDATED_BY,
451 LAST_UPDATE_LOGIN
452 ) values (
453 NEW_REFERENCES.GOVT_CITIZENSHIP_CD,
454 NEW_REFERENCES.DESCRIPTION,
455 NEW_REFERENCES.CLOSED_IND,
456 X_LAST_UPDATE_DATE,
457 X_LAST_UPDATED_BY,
458 X_LAST_UPDATE_DATE,
459 X_LAST_UPDATED_BY,
460 X_LAST_UPDATE_LOGIN
461 );
462
463 open c;
464 fetch c into X_ROWID;
465 if (c%notfound) then
466 close c;
467 raise no_data_found;
468 end if;
469 close c;
470 After_DML(
471
472 p_action => 'INSERT',
473
474 x_rowid => X_ROWID
475
476 );
477 end INSERT_ROW;
478
479 procedure LOCK_ROW (
480
481 X_ROWID in VARCHAR2,
482 X_GOVT_CITIZENSHIP_CD in NUMBER,
483 X_DESCRIPTION in VARCHAR2,
484 X_CLOSED_IND in VARCHAR2
485 ) AS
486 cursor c1 is select
487 DESCRIPTION,
488 CLOSED_IND
489 from IGS_PE_GOVCITIZEN_CD
490 where ROWID = X_ROWID
491 for update nowait;
492 tlinfo c1%rowtype;
493
494 begin
495 open c1;
496 fetch c1 into tlinfo;
497 if (c1%notfound) then
498 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
499
500 close c1;
501 App_Exception.Raise_Exception;
502 return;
503 end if;
504 close c1;
505
506 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
507 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
508 ) then
509 null;
510 else
511 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
512 app_exception.raise_exception;
513 end if;
514 return;
515 end LOCK_ROW;
516
517 procedure UPDATE_ROW (
518
519 X_ROWID in VARCHAR2,
520 X_GOVT_CITIZENSHIP_CD in NUMBER,
521 X_DESCRIPTION in VARCHAR2,
522 X_CLOSED_IND in VARCHAR2,
523 X_MODE in VARCHAR2 default 'R'
524 ) AS
525 X_LAST_UPDATE_DATE DATE;
526 X_LAST_UPDATED_BY NUMBER;
527 X_LAST_UPDATE_LOGIN NUMBER;
528 begin
529 X_LAST_UPDATE_DATE := SYSDATE;
530 if(X_MODE = 'I') then
531 X_LAST_UPDATED_BY := 1;
532 X_LAST_UPDATE_LOGIN := 0;
533 elsif (X_MODE = 'R') then
534 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
535 if X_LAST_UPDATED_BY is NULL then
536 X_LAST_UPDATED_BY := -1;
537 end if;
538 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
539 if X_LAST_UPDATE_LOGIN is NULL then
540 X_LAST_UPDATE_LOGIN := -1;
541 end if;
542 else
543 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
544 IGS_GE_MSG_STACK.ADD;
545 app_exception.raise_exception;
546 end if;
547
548 Before_DML(
549
550 p_action=>'UPDATE',
551
552 x_rowid=>X_ROWID,
553
554 x_closed_ind=>X_CLOSED_IND,
555
556 x_description=>X_DESCRIPTION,
557
558 x_govt_citizenship_cd=>X_GOVT_CITIZENSHIP_CD,
559
560 x_creation_date=>X_LAST_UPDATE_DATE,
561
562 x_created_by=>X_LAST_UPDATED_BY,
563
564 x_last_update_date=>X_LAST_UPDATE_DATE,
565
566 x_last_updated_by=>X_LAST_UPDATED_BY,
567
568 x_last_update_login=>X_LAST_UPDATE_LOGIN
569
570 );
571 update IGS_PE_GOVCITIZEN_CD set
572 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
573 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
574 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
575 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
576 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
577 where ROWID = X_ROWID
578 ;
579 if (sql%notfound) then
580 raise no_data_found;
581 end if;
582
583
584
585 After_DML(
586
587 p_action => 'UPDATE',
588
589 x_rowid => X_ROWID
590
591 );
592 end UPDATE_ROW;
593
594 procedure ADD_ROW (
595 X_ROWID in out NOCOPY VARCHAR2,
596 X_GOVT_CITIZENSHIP_CD in NUMBER,
597 X_DESCRIPTION in VARCHAR2,
598 X_CLOSED_IND in VARCHAR2,
599 X_MODE in VARCHAR2 default 'R'
600 ) AS
601 cursor c1 is select rowid from IGS_PE_GOVCITIZEN_CD
602 where GOVT_CITIZENSHIP_CD = X_GOVT_CITIZENSHIP_CD
603 ;
604
605 begin
606 open c1;
607 fetch c1 into X_ROWID;
608 if (c1%notfound) then
609 close c1;
610 INSERT_ROW (
611 X_ROWID,
612 X_GOVT_CITIZENSHIP_CD,
613 X_DESCRIPTION,
614 X_CLOSED_IND,
615 X_MODE);
616 return;
617 end if;
618 close c1;
619 UPDATE_ROW (
620
621 X_ROWID,
622 X_GOVT_CITIZENSHIP_CD,
623 X_DESCRIPTION,
624 X_CLOSED_IND,
625 X_MODE);
626 end ADD_ROW;
627
628 procedure DELETE_ROW (
629 X_ROWID in VARCHAR2
630 ) AS
631 begin
632
633 Before_DML(
634
635 p_action => 'DELETE',
636
637 x_rowid => X_ROWID
638
639 );
640 delete from IGS_PE_GOVCITIZEN_CD
641 where ROWID = X_ROWID;
642 if (sql%notfound) then
643 raise no_data_found;
644 end if;
645
646 After_DML(
647
648 p_action => 'DELETE',
649
650 x_rowid => X_ROWID
651
652 );
653
654
655
656
657 end DELETE_ROW;
658
659 end IGS_PE_GOVCITIZEN_CD_PKG;