DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_LANGUAGE_CD_PKG

Source


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