1 PACKAGE BODY IGS_EN_VAL_ETDE AS
2 /* $Header: IGSEN38B.pls 115.7 2002/11/28 23:58:30 nsidana ship $ */
3 --
4 -- Validate the encumbrance type closed indicator.
5 FUNCTION enrp_val_et_closed(
6 p_encumbrance_type IN VARCHAR2 ,
7 p_message_name OUT NOCOPY VARCHAR2)
8 RETURN BOOLEAN AS
9 BEGIN
10 DECLARE
11
12 v_closed_ind IGS_FI_ENCMB_TYPE.closed_ind%TYPE;
13 CURSOR c_encum_type_ind IS
14 SELECT closed_ind
15 FROM IGS_FI_ENCMB_TYPE
16 WHERE encumbrance_type = p_encumbrance_type;
17 BEGIN
18 -- This module checks if the IGS_FI_ENCMB_TYPE
19 -- is closed
20 p_message_name := null;
21 OPEN c_encum_type_ind;
22 FETCH c_encum_type_ind INTO v_closed_ind;
23 IF (c_encum_type_ind%NOTFOUND) THEN
24 CLOSE c_encum_type_ind;
25 RETURN TRUE;
26 END IF;
27 CLOSE c_encum_type_ind;
28 IF (v_closed_ind = 'Y') THEN
29 p_message_name := 'IGS_EN_ENCUMB_TYPE_CLOSED';
30 RETURN FALSE;
31 END IF;
32 RETURN TRUE;
33 EXCEPTION
34 WHEN OTHERS THEN
35 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
36 FND_MESSAGE.SET_TOKEN('NAME', 'IGS_EN_VAL_ETDE.enrp_val_et_closed');
37 IGS_GE_MSG_STACK.ADD;
38 App_Exception.Raise_Exception;
39
40 END;
41 END enrp_val_et_closed;
42 --
43 -- Validate the system encumbrance effect type closed indicator.
44 FUNCTION enrp_val_seet_closed(
45 p_s_encmb_effect_type IN VARCHAR2 ,
46 p_message_name OUT NOCOPY VARCHAR2)
47 RETURN BOOLEAN AS
48 BEGIN
49 DECLARE
50
51 v_closed_ind IGS_EN_ENCMB_EFCTTYP_V.closed_ind%TYPE;
52 CURSOR c_s_encmb_type_ind IS
53 SELECT closed_ind
54 FROM IGS_EN_ENCMB_EFCTTYP_V
55 WHERE s_encmb_effect_type = p_s_encmb_effect_type;
56 BEGIN
57 -- This module checks if the IGS_FI_ENCMB_TYPE
58 -- is closed
59 p_message_name := null;
60 OPEN c_s_encmb_type_ind;
61 FETCH c_s_encmb_type_ind INTO v_closed_ind;
62 IF (c_s_encmb_type_ind%NOTFOUND) THEN
63 CLOSE c_s_encmb_type_ind;
64 RETURN TRUE;
65 END IF;
66 CLOSE c_s_encmb_type_ind;
67 IF (v_closed_ind = 'Y') THEN
68 p_message_name := 'IGS_EN_SYS_ENCUMB_EFTYPE_CLOS';
69 RETURN FALSE;
70 END IF;
71 RETURN TRUE;
72 EXCEPTION
73 WHEN OTHERS THEN
74 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
75 FND_MESSAGE.SET_TOKEN('NAME', 'IGS_EN_VAL_ETDE.enrp_val_seet_closed');
76 IGS_GE_MSG_STACK.ADD;
77 App_Exception.Raise_Exception;
78
79
80 END;
81 END enrp_val_seet_closed;
82 -- Validate the s_progression_outcome_type.
83 FUNCTION enrp_val_et_pot(
84 p_encumbrance_type IN VARCHAR2 ,
85 p_message_name1 OUT NOCOPY VARCHAR2 ,
86 p_message_name2 OUT NOCOPY VARCHAR2 )
87 RETURN BOOLEAN IS
88 gv_other_detail VARCHAR2(255);
89 BEGIN -- enrp_val_et_pot
90 -- Validate the s_progression_outcome_type for an encumbrance_type which
91 -- has been entered.
92 DECLARE
93 v_message_name fnd_new_messages.message_name%TYPE;
94 v_validation_failed BOOLEAN DEFAULT FALSE;
95 CURSOR c_pot IS
96 SELECT pot.s_progression_outcome_type
97 FROM IGS_PR_OU_TYPE pot
98 WHERE NVL(pot.encumbrance_type,' ') = p_encumbrance_type;
99 BEGIN
100 -- Set the default message names
101 p_message_name1 := NULL;
102 p_message_name2 := NULL;
103 FOR v_pot_rec IN c_pot LOOP
104 IF NOT IGS_PR_VAL_POT.prgp_val_pot_et (
105 v_pot_rec.s_progression_outcome_type,
106 p_encumbrance_type,
107 v_message_name) THEN
108 v_validation_failed := TRUE;
109 EXIT;
110 END IF;
111 END LOOP;
112 IF v_validation_failed THEN
113 p_message_name1 := 'IGS_PR_CHNG_CAUSED_ERR';
114 p_message_name2 := v_message_name;
115 RETURN FALSE;
116 END IF;
117 RETURN TRUE;
118 EXCEPTION
119 WHEN OTHERS THEN
120 IF c_pot%ISOPEN THEN
121 CLOSE c_pot;
122 END IF;
123 RAISE;
124 END;
125 EXCEPTION
126 WHEN OTHERS THEN
127 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
128 FND_MESSAGE.SET_TOKEN('NAME', 'IGS_EN_VAL_ETDE.enrp_val_et_pot');
129 IGS_GE_MSG_STACK.ADD;
130 App_Exception.Raise_Exception;
131 RAISE;
132 END enrp_val_et_pot;
133 END IGS_EN_VAL_ETDE;