1 PACKAGE BODY IGS_AD_VAL_ITT AS
2 /* $Header: IGSAD63B.pls 115.4 2003/06/14 02:07:54 knag ship $ */
3
4 --
5 -- Validate if system intake target type is closed.
6 FUNCTION admp_val_sitt_closed(
7 p_s_intake_target_type IN VARCHAR2 ,
8 p_message_name OUT NOCOPY VARCHAR2 )
9 RETURN BOOLEAN AS
10 BEGIN -- admp_val_sitt_closed
11 -- Validate if s_intake_target_type.s_intake_target_type is closed.
12 DECLARE
13 v_closed_ind IGS_LOOKUPS_VIEW.closed_ind%TYPE;
14 CURSOR c_sitt IS
15 SELECT closed_ind
16 FROM IGS_LOOKUP_VALUES
17 WHERE lookup_type = 'INTAKE_TARGET_TYPE'
18 AND lookup_code = p_s_intake_target_type;
19 BEGIN
20 OPEN c_sitt;
21 FETCH c_sitt INTO v_closed_ind;
22 IF (c_sitt%FOUND) THEN
23 IF (v_closed_ind = 'Y') THEN
24 CLOSE c_sitt;
25 p_message_name := 'IGS_AD_SYSINTAKE_TRGT_TYPECLS';
26 RETURN FALSE;
27 END IF;
28 END IF;
29 CLOSE c_sitt;
30 p_message_name := null;
31 RETURN TRUE;
32 EXCEPTION
33 WHEN OTHERS THEN
34 IF (c_sitt%ISOPEN) THEN
35 CLOSE c_sitt;
36 END IF;
37 App_Exception.Raise_Exception;
38 END;
39 EXCEPTION
40 WHEN OTHERS THEN
41 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
42 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_ITT.admp_val_sitt_closed');
43 IGS_GE_MSG_STACK.ADD;
44 App_Exception.Raise_Exception;
45 END admp_val_sitt_closed;
46 --
47 -- Validate unique system values for intake target type.
48 FUNCTION admp_val_sitt_uniq(
49 p_intake_target_type IN VARCHAR2 ,
50 p_s_intake_target_type IN VARCHAR2 ,
51 p_s_amount_type IN VARCHAR2 ,
52 p_message_name OUT NOCOPY VARCHAR2 )
53 RETURN BOOLEAN AS
54 BEGIN -- admp_val_sitt_uniq
55 -- This module validates that the combination of s_intake_target_type and
56 -- s_amount_type is unique within intake_target_type with the exception of
57 -- records with a s_intake_target_type = 'USER-DEF'
58 DECLARE
59 cst_user_def CONSTANT VARCHAR2(8) := 'USER-DEF';
60 v_dummy VARCHAR2(1);
61 CURSOR c_itt IS
62 SELECT 'x'
63 FROM IGS_AD_INTAK_TRG_TYP itt
64 WHERE itt.intake_target_type <> p_intake_target_type AND
65 itt.s_intake_target_type = p_s_intake_target_type AND
66 itt.s_amount_type = p_s_amount_type AND
67 itt.closed_ind = 'N';
68 BEGIN
69 p_message_name := null;
70 IF p_s_intake_target_type = cst_user_def THEN
71 RETURN TRUE;
72 END IF;
73 OPEN c_itt;
74 FETCH c_itt INTO v_dummy;
75 IF c_itt%FOUND THEN
76 CLOSE c_itt;
77 p_message_name := 'IGS_AD_STUD_INTAKE_TRGT_TYPE';
78 RETURN FALSE;
79 END IF;
80 CLOSE c_itt;
81 RETURN TRUE;
82 EXCEPTION
83 WHEN OTHERS THEN
84 IF (c_itt%ISOPEN) THEN
85 CLOSE c_itt;
86 END IF;
87 App_Exception.Raise_Exception;
88 END;
89 EXCEPTION
90 WHEN OTHERS THEN
91 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
92 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_ITT.admp_val_sitt_uniq');
93 IGS_GE_MSG_STACK.ADD;
94 App_Exception.Raise_Exception;
95 END admp_val_sitt_uniq;
96 --
97
98 END IGS_AD_VAL_ITT;