[Home] [Help]
PACKAGE BODY: APPS.IGS_PE_COUNTRY_CD_PKG
Source
1 package body IGS_PE_COUNTRY_CD_PKG as
2 /* $Header: IGSNI04B.pls 115.4 2002/12/05 10:36:06 kpadiyar ship $ */
3
4
5 l_rowid VARCHAR2(25);
6
7 old_references IGS_PE_COUNTRY_CD%RowType;
8
9 new_references IGS_PE_COUNTRY_CD%RowType;
10
11
12
13 PROCEDURE Set_Column_Values (
14
15 p_action IN VARCHAR2,
16
17 x_rowid IN VARCHAR2 DEFAULT NULL,
18
19 x_country_cd IN VARCHAR2 DEFAULT NULL,
20
21 x_govt_country_cd IN VARCHAR2 DEFAULT NULL,
22
23 x_description IN VARCHAR2 DEFAULT NULL,
24
25 x_closed_ind IN VARCHAR2 DEFAULT NULL,
26
27 x_notes IN VARCHAR2 DEFAULT NULL,
28
29 x_creation_date IN DATE DEFAULT NULL,
30
31 x_created_by IN NUMBER DEFAULT NULL,
32
33 x_last_update_date IN DATE DEFAULT NULL,
34
35 x_last_updated_by IN NUMBER DEFAULT NULL,
36
37 x_last_update_login IN NUMBER DEFAULT NULL
38
39 ) as
40
41
42
43 CURSOR cur_old_ref_values IS
44
45 SELECT *
46
47 FROM IGS_PE_COUNTRY_CD
48
49 WHERE rowid = x_rowid;
50
51
52
53 BEGIN
54
55
56
57 l_rowid := x_rowid;
58
59
60
61 -- Code for setting the Old and New Reference Values.
62
63 -- Populate Old Values.
64
65 Open cur_old_ref_values;
66
67 Fetch cur_old_ref_values INTO old_references;
68
69 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
70
71 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
72
73 IGS_GE_MSG_STACK.ADD;
74
75 Close cur_old_ref_values;
76 App_Exception.Raise_Exception;
77 Return;
78
79 END IF;
80
81 Close cur_old_ref_values;
82
83
84
85 -- Populate New Values.
86
87 new_references.COUNTRY_CD:= x_country_cd;
88
89 new_references.GOVT_COUNTRY_CD:= x_govt_country_cd;
90
91 new_references.description := x_description;
92
93 new_references.closed_ind := x_closed_ind;
94
95 new_references.notes := x_notes;
96
97 IF (p_action = 'UPDATE') THEN
98
99 new_references.creation_date := old_references.creation_date;
100
101 new_references.created_by := old_references.created_by;
102
103 ELSE
104
105 new_references.creation_date := x_creation_date;
106
107 new_references.created_by := x_created_by;
108
109 END IF;
110
111 new_references.last_update_date := x_last_update_date;
112
113 new_references.last_updated_by := x_last_updated_by;
114
115 new_references.last_update_login := x_last_update_login;
116
117
118
119 END Set_Column_Values;
120
121
122
123 -- Trigger description :-
124
125 -- "OSS_TST".trg_cnc_br_iud
126
127 -- BEFORE INSERT OR DELETE OR UPDATE
128
129 -- ON IGS_PE_COUNTRY_CD
130
131 -- FOR EACH ROW
132
133
134
135 PROCEDURE BeforeRowInsertUpdateDelete1(
136
137 p_inserting IN BOOLEAN DEFAULT FALSE,
138
139 p_updating IN BOOLEAN DEFAULT FALSE,
140
141 p_deleting IN BOOLEAN DEFAULT FALSE
142
143 ) as
144
145 v_message_name varchar2(30);
146 BEGIN
147
148 IF p_deleting THEN
149
150 -- Validate if value is used on another table that does
151
152 -- not have a foreign key to this table. Eg. IGS_PE_PERSON Statistics
153
154 IF IGS_EN_VAL_CNC.enrp_val_cnc_del (
155
156 old_references.COUNTRY_CD,
157
158 v_message_name ) = FALSE THEN
159
160 Fnd_Message.Set_Name('IGS', v_message_name);
161 IGS_GE_MSG_STACK.ADD;
162 App_Exception.Raise_Exception;
163
164 END IF;
165
166 END IF;
167
168 -- Validate GOVERNMENT COUNTRY CODE.
169
170 IF p_inserting OR ((old_references.GOVT_COUNTRY_CD<> new_references.GOVT_COUNTRY_CD) OR
171
172 (old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N')) THEN
173
174 IF IGS_EN_VAL_CNC.enrp_val_cnc_govt (
175
176 new_references.GOVT_COUNTRY_CD,
177
178 v_message_name ) = FALSE THEN
179
180 Fnd_Message.Set_Name('IGS', v_message_name);
181 IGS_GE_MSG_STACK.ADD;
182 App_Exception.Raise_Exception;
183
184 END IF;
185
186 END IF;
187
188
189
190
191
192 END BeforeRowInsertUpdateDelete1;
193
194
195 PROCEDURE Check_Constraints (
196 Column_Name IN VARCHAR2 DEFAULT NULL,
197 Column_Value IN VARCHAR2 DEFAULT NULL
198 )
199 as
200 BEGIN
201 IF column_name is null then
202 NULL;
203 ELSIF upper(Column_name) = 'CLOSED_IND' then
204 new_references.closed_ind := column_value;
205 ELSIF upper(Column_name) = 'COUNTRY_CD ' then
206 new_references. COUNTRY_CD := column_value;
207 ELSIF upper(Column_name) = 'GOVT_COUNTRY_CD' then
208 new_references.GOVT_COUNTRY_CD := column_value;
209 END IF;
210
211
212 IF upper(column_name) = 'CLOSED_IND' OR
213 column_name is null Then
214 IF
215 new_references.closed_ind NOT IN ( 'Y' , 'N' ) Then
216 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
217 IGS_GE_MSG_STACK.ADD;
218 App_Exception.Raise_Exception;
219 END IF;
220 END IF;
221
222 IF upper(column_name) = 'COUNTRY_CD' OR
223 column_name is null Then
224 IF new_references.COUNTRY_CD <> UPPER(new_references.COUNTRY_CD) Then
225 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
226 IGS_GE_MSG_STACK.ADD;
227 App_Exception.Raise_Exception;
228 END IF;
229 END IF;
230
231 IF upper(column_name) = 'GOVT_COUNTRY_CD' OR
232 column_name is null Then
233 IF new_references.GOVT_COUNTRY_CD<>
234 UPPER(new_references.GOVT_COUNTRY_CD) Then
235 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
236 IGS_GE_MSG_STACK.ADD;
237 App_Exception.Raise_Exception;
238 END IF;
239 END IF;
240
241
242 END Check_Constraints;
243
244 PROCEDURE Check_Parent_Existance as
245
246 BEGIN
247
248
249
250 IF (((old_references.GOVT_COUNTRY_CD= new_references.GOVT_COUNTRY_CD)) OR
251
252 ((new_references.GOVT_COUNTRY_CD IS NULL))) THEN
253
254 NULL;
255
256 ELSE
257 IF NOT IGS_PE_GOV_COUNTRYCD_PKG.Get_PK_For_Validation (
258 new_references.GOVT_COUNTRY_CD) THEN
259 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
260 IGS_GE_MSG_STACK.ADD;
261 App_Exception.Raise_Exception;
262 END IF;
263 END IF;
264 END Check_Parent_Existance;
265 PROCEDURE Check_Child_Existance as
266
267 BEGIN
268
269 IGS_AD_OS_SEC_EDU_PKG.GET_FK_IGS_PE_COUNTRY_CD (
270
271 old_references.COUNTRY_CD
272
273 );
274
275
276
277 IGS_AD_OS_SEC_EDU_QF_PKG.GET_FK_IGS_PE_COUNTRY_CD (
278
279 old_references.COUNTRY_CD
280
281 );
282
283
284
285 IGS_AD_TER_EDU_PKG.GET_FK_IGS_PE_COUNTRY_CD (
286
287 old_references.COUNTRY_CD
288
289 );
290
291
292
293 END Check_Child_Existance;
294
295
296
297 FUNCTION Get_PK_For_Validation (
298
299 x_country_cd IN VARCHAR2
300
301 ) RETURN BOOLEAN
302 as
303
304
305
306 CURSOR cur_rowid IS
307
308 SELECT rowid
309
310 FROM IGS_PE_COUNTRY_CD
311
312 WHERE COUNTRY_CD= x_country_cd
313
314 FOR UPDATE NOWAIT;
315
316
317
318 lv_rowid cur_rowid%RowType;
319
320
321
322 BEGIN
323 Open cur_rowid;
324 Fetch cur_rowid INTO lv_rowid;
325 IF (cur_rowid%FOUND) THEN
326 Close cur_rowid;
327 Return (TRUE);
328 ELSE
329 Close cur_rowid;
330 Return (FALSE);
331 END IF;
332 END Get_PK_For_Validation;
333
334 PROCEDURE GET_FK_IGS_PE_GOV_COUNTRYCD (
335
336 x_govt_country_cd IN VARCHAR2
337
338 ) as
339
340
341
342 CURSOR cur_rowid IS
343
344 SELECT rowid
345
346 FROM IGS_PE_COUNTRY_CD
347
348 WHERE GOVT_COUNTRY_CD= x_govt_country_cd ;
349
350
351
352 lv_rowid cur_rowid%RowType;
353
354
355
356 BEGIN
357
358
359
360 Open cur_rowid;
361
362 Fetch cur_rowid INTO lv_rowid;
363
364 IF (cur_rowid%FOUND) THEN
365
366 Fnd_Message.Set_Name ('IGS', 'IGS_PE_CNC_GCOC_FK');
367 IGS_GE_MSG_STACK.ADD;
368
369
370 Close cur_rowid;
371 App_Exception.Raise_Exception;
372 Return;
373
374 END IF;
375
376 Close cur_rowid;
377
378
379
380 END GET_FK_IGS_PE_GOV_COUNTRYCD;
381
382
383
384 PROCEDURE Before_DML (
385
386 p_action IN VARCHAR2,
387
388 x_rowid IN VARCHAR2 DEFAULT NULL,
389
390 x_country_cd IN VARCHAR2 DEFAULT NULL,
391
392 x_govt_country_cd IN VARCHAR2 DEFAULT NULL,
393
394 x_description IN VARCHAR2 DEFAULT NULL,
395
396 x_closed_ind IN VARCHAR2 DEFAULT NULL,
397
398 x_notes IN VARCHAR2 DEFAULT NULL,
399
400 x_creation_date IN DATE DEFAULT NULL,
401
402 x_created_by IN NUMBER DEFAULT NULL,
403
404 x_last_update_date IN DATE DEFAULT NULL,
405
406 x_last_updated_by IN NUMBER DEFAULT NULL,
407
408 x_last_update_login IN NUMBER DEFAULT NULL
409
410 ) as
411
412 BEGIN
413
414
415
416 Set_Column_Values (
417
418 p_action,
419
420 x_rowid,
421
422 x_country_cd,
423
424 x_govt_country_cd,
425
426 x_description,
427
428 x_closed_ind,
429
430 x_notes,
431
432 x_creation_date,
433
434 x_created_by,
435
436 x_last_update_date,
437
438 x_last_updated_by,
439
440 x_last_update_login
441
442 );
443
444
445
446 IF (p_action = 'INSERT') THEN
447 -- Call all the procedures related to Before Insert.
448 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
449 IF Get_PK_For_Validation (
450 new_references.country_cd ) THEN
451 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
452 IGS_GE_MSG_STACK.ADD;
453 App_Exception.Raise_Exception;
454 END IF;
455
456 Check_Constraints; -- if procedure present
457 Check_Parent_Existance; -- if procedure present
458 ELSIF (p_action = 'UPDATE') THEN
459 -- Call all the procedures related to Before Update.
460 BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
461
462 Check_Constraints; -- if procedure present
463 Check_Parent_Existance; -- if procedure present
464 ELSIF (p_action = 'DELETE') THEN
465 -- Call all the procedures related to Before Delete.
466 BeforeRowInsertUpdateDelete1( p_deleting => TRUE );
467 Check_Child_Existance; -- if procedure present
468 ELSIF (p_action = 'VALIDATE_INSERT') THEN
469 IF Get_PK_For_Validation (
470 new_references.country_cd ) THEN
471 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
472 IGS_GE_MSG_STACK.ADD;
473 App_Exception.Raise_Exception;
474 END IF;
475
476 Check_Constraints; -- if procedure present
477 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
478
479 Check_Constraints; -- if procedure present
480 ELSIF (p_action = 'VALIDATE_DELETE') THEN
481 Check_Child_Existance; -- if procedure present
482 END IF;
483
484
485
486 END Before_DML;
487
488
489
490 PROCEDURE After_DML (
491
492 p_action IN VARCHAR2,
493
494 x_rowid IN VARCHAR2
495
496 ) as
497
498 BEGIN
499
500
501
502 l_rowid := x_rowid;
503
504
505
506 IF (p_action = 'INSERT') THEN
507
508 -- Call all the procedures related to After Insert.
509
510 Null;
511
512 ELSIF (p_action = 'UPDATE') THEN
513
514 -- Call all the procedures related to After Update.
515
516 Null;
517
518 ELSIF (p_action = 'DELETE') THEN
519
520 -- Call all the procedures related to After Delete.
521
522 Null;
523
524 END IF;
525
526
527
528 END After_DML;
529
530
531 procedure INSERT_ROW (
532 X_ROWID in out NOCOPY VARCHAR2,
533 X_COUNTRY_CD in VARCHAR2,
534 X_GOVT_COUNTRY_CD in VARCHAR2,
535 X_DESCRIPTION in VARCHAR2,
536 X_CLOSED_IND in VARCHAR2,
537 X_NOTES in VARCHAR2,
538 X_MODE in VARCHAR2 default 'R'
539 ) as
540 cursor C is select ROWID from IGS_PE_COUNTRY_CD
541 where COUNTRY_CD = X_COUNTRY_CD;
542 X_LAST_UPDATE_DATE DATE;
543 X_LAST_UPDATED_BY NUMBER;
544 X_LAST_UPDATE_LOGIN NUMBER;
545 begin
546 X_LAST_UPDATE_DATE := SYSDATE;
547 if(X_MODE = 'I') then
548 X_LAST_UPDATED_BY := 1;
549 X_LAST_UPDATE_LOGIN := 0;
550 elsif (X_MODE = 'R') then
551 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
552 if X_LAST_UPDATED_BY is NULL then
553 X_LAST_UPDATED_BY := -1;
554 end if;
555 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
556 if X_LAST_UPDATE_LOGIN is NULL then
557 X_LAST_UPDATE_LOGIN := -1;
558 end if;
559 else
560 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
561 IGS_GE_MSG_STACK.ADD;
562 app_exception.raise_exception;
563 end if;
564
565 Before_DML(
566
567 p_action=>'INSERT',
568
569 x_rowid=>X_ROWID,
570
571 x_closed_ind=> NVL(X_CLOSED_IND,'N'),
572
573 x_country_cd=>X_COUNTRY_CD,
574
575 x_description=>X_DESCRIPTION,
576
577 x_govt_country_cd=>X_GOVT_COUNTRY_CD,
578
579 x_notes=>X_NOTES,
580
581 x_creation_date=>X_LAST_UPDATE_DATE,
582
583 x_created_by=>X_LAST_UPDATED_BY,
584
585 x_last_update_date=>X_LAST_UPDATE_DATE,
586
587 x_last_updated_by=>X_LAST_UPDATED_BY,
588
589 x_last_update_login=>X_LAST_UPDATE_LOGIN
590
591 );
592 insert into IGS_PE_COUNTRY_CD (
593 COUNTRY_CD,
594 GOVT_COUNTRY_CD,
595 DESCRIPTION,
596 CLOSED_IND,
597 NOTES,
598 CREATION_DATE,
599 CREATED_BY,
600 LAST_UPDATE_DATE,
601 LAST_UPDATED_BY,
602 LAST_UPDATE_LOGIN
603 ) values (
604 NEW_REFERENCES.COUNTRY_CD,
605 NEW_REFERENCES.GOVT_COUNTRY_CD,
606 NEW_REFERENCES.DESCRIPTION,
607 NEW_REFERENCES.CLOSED_IND,
608 NEW_REFERENCES.NOTES,
609 X_LAST_UPDATE_DATE,
610 X_LAST_UPDATED_BY,
611 X_LAST_UPDATE_DATE,
612 X_LAST_UPDATED_BY,
613 X_LAST_UPDATE_LOGIN
614 );
615
616 open c;
617 fetch c into X_ROWID;
618 if (c%notfound) then
619 close c;
620 raise no_data_found;
621 end if;
622 close c;
623 After_DML(
624
625 p_action => 'INSERT',
626
627 x_rowid => X_ROWID
628
629 );
630
631
632 end INSERT_ROW;
633
634 procedure LOCK_ROW (
635
636 X_ROWID in VARCHAR2,
637 X_COUNTRY_CD in VARCHAR2,
638 X_GOVT_COUNTRY_CD in VARCHAR2,
639 X_DESCRIPTION in VARCHAR2,
640 X_CLOSED_IND in VARCHAR2,
641 X_NOTES in VARCHAR2
642 ) as
643 cursor c1 is select
644 GOVT_COUNTRY_CD,
645 DESCRIPTION,
646 CLOSED_IND,
647 NOTES
648 from IGS_PE_COUNTRY_CD
649 where ROWID = X_ROWID
650 for update nowait;
651 tlinfo c1%rowtype;
652
653 begin
654 open c1;
655 fetch c1 into tlinfo;
656 if (c1%notfound) then
657 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
658
659 close c1;
660 App_Exception.Raise_Exception;
661 return;
662 end if;
663 close c1;
664
665 if ( (tlinfo.GOVT_COUNTRY_CD = X_GOVT_COUNTRY_CD)
666 AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
667 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
668 AND ((tlinfo.NOTES = X_NOTES)
669 OR ((tlinfo.NOTES is null)
670 AND (X_NOTES is null)))
671 ) then
672 null;
673 else
674 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
675 app_exception.raise_exception;
676 end if;
677 return;
678 end LOCK_ROW;
679
680 procedure UPDATE_ROW (
681
682 X_ROWID in VARCHAR2,
683 X_COUNTRY_CD in VARCHAR2,
684 X_GOVT_COUNTRY_CD in VARCHAR2,
685 X_DESCRIPTION in VARCHAR2,
686 X_CLOSED_IND in VARCHAR2,
687 X_NOTES in VARCHAR2,
688 X_MODE in VARCHAR2 default 'R'
689 ) as
690 X_LAST_UPDATE_DATE DATE;
691 X_LAST_UPDATED_BY NUMBER;
692 X_LAST_UPDATE_LOGIN NUMBER;
693 begin
694 X_LAST_UPDATE_DATE := SYSDATE;
695 if(X_MODE = 'I') then
696 X_LAST_UPDATED_BY := 1;
697 X_LAST_UPDATE_LOGIN := 0;
698 elsif (X_MODE = 'R') then
699 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
700 if X_LAST_UPDATED_BY is NULL then
701 X_LAST_UPDATED_BY := -1;
702 end if;
703 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
704 if X_LAST_UPDATE_LOGIN is NULL then
705 X_LAST_UPDATE_LOGIN := -1;
706 end if;
707 else
708 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
709 IGS_GE_MSG_STACK.ADD;
710 app_exception.raise_exception;
711 end if;
712
713 Before_DML(
714
715 p_action=>'UPDATE',
716
717 x_rowid => X_ROWID,
718
719 x_closed_ind=>X_CLOSED_IND,
720
721 x_country_cd=>X_COUNTRY_CD,
722
723 x_description=>X_DESCRIPTION,
724
725 x_govt_country_cd=>X_GOVT_COUNTRY_CD,
726
727 x_notes=>X_NOTES,
728
729 x_creation_date=>X_LAST_UPDATE_DATE,
730
731 x_created_by=>X_LAST_UPDATED_BY,
732
733 x_last_update_date=>X_LAST_UPDATE_DATE,
734
735 x_last_updated_by=>X_LAST_UPDATED_BY,
736
737 x_last_update_login=>X_LAST_UPDATE_LOGIN
738
739 );
740
741
742 update IGS_PE_COUNTRY_CD set
743 GOVT_COUNTRY_CD = NEW_REFERENCES.GOVT_COUNTRY_CD,
744 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
745 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
746 NOTES = NEW_REFERENCES.NOTES,
747 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
748 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
749 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
750 where ROWID = X_ROWID
751 ;
752 if (sql%notfound) then
753 raise no_data_found;
754 end if;
755
756
757
758 After_DML(
759
760 p_action => 'UPDATE',
761
762 x_rowid => X_ROWID
763
764 );
765
766
767 end UPDATE_ROW;
768
769 procedure ADD_ROW (
770 X_ROWID in out NOCOPY VARCHAR2,
771 X_COUNTRY_CD in VARCHAR2,
772 X_GOVT_COUNTRY_CD in VARCHAR2,
773 X_DESCRIPTION in VARCHAR2,
774 X_CLOSED_IND in VARCHAR2,
775 X_NOTES in VARCHAR2,
776 X_MODE in VARCHAR2 default 'R'
777 ) as
778 cursor c1 is select rowid from IGS_PE_COUNTRY_CD
779 where COUNTRY_CD = X_COUNTRY_CD
780 ;
781
782 begin
783 open c1;
784 fetch c1 into X_ROWID;
785 if (c1%notfound) then
786 close c1;
787 INSERT_ROW (
788 X_ROWID,
789 X_COUNTRY_CD,
790 X_GOVT_COUNTRY_CD,
791 X_DESCRIPTION,
792 X_CLOSED_IND,
793 X_NOTES,
794 X_MODE);
795 return;
796 end if;
797 close c1;
798 UPDATE_ROW (
799
800 X_ROWID,
801 X_COUNTRY_CD,
802 X_GOVT_COUNTRY_CD,
803 X_DESCRIPTION,
804 X_CLOSED_IND,
805 X_NOTES,
806 X_MODE);
807 end ADD_ROW;
808
809 procedure DELETE_ROW (
810 X_ROWID in VARCHAR2
811 ) as
812 begin
813
814 Before_DML(
815
816 p_action => 'DELETE',
817
818 x_rowid => X_ROWID
819
820 );
821
822
823 delete from IGS_PE_COUNTRY_CD
824 where ROWID = X_ROWID;
825 if (sql%notfound) then
826 raise no_data_found;
827 end if;
828
829
830
831 After_DML(
832
833 p_action => 'DELETE',
834
835 x_rowid => X_ROWID
836
837 );
838
839
840
841 end DELETE_ROW;
842
843 end IGS_PE_COUNTRY_CD_PKG;