1 PACKAGE BODY IGS_AS_VAL_AIA AS
2 /* $Header: IGSAS12B.pls 115.8 2003/12/05 11:03:51 kdande ship $ */
3 --
4 --msrinivi 24-AUG-2001 Bug No. 1956374 .The function genp_val_prsn_id removed
5 --
6 -- Validate assessment assessor type closed indicator.
7 FUNCTION assp_val_asst_closed(
8 p_ass_assessor_type IN IGS_AS_ASSESSOR_TYPE.ass_assessor_type%TYPE ,
9 P_MESSAGE_NAME OUT NOCOPY VARCHAR2 )
10 RETURN BOOLEAN AS
11
12 BEGIN -- assp_val_asst_closed
13 -- Validate the assessemnt assessor type closed indicator
14 DECLARE
15 CURSOR c_asst(
16 cp_ass_assessor_type IGS_AS_ASSESSOR_TYPE.ass_assessor_type%TYPE) IS
17 SELECT closed_ind
18 FROM IGS_AS_ASSESSOR_TYPE
19 WHERE ass_assessor_type = cp_ass_assessor_type;
20 v_asst_rec c_asst%ROWTYPE;
21 cst_yes CONSTANT CHAR := 'Y';
22 BEGIN
23 -- Set the default message number
24 P_MESSAGE_NAME := NULL;
25 -- Cursor handling
26 OPEN c_asst(
27 p_ass_assessor_type);
28 FETCH c_asst INTO v_asst_rec;
29 IF c_asst%NOTFOUND THEN
30 CLOSE c_asst;
31 RETURN TRUE;
32 END IF;
33 CLOSE c_asst;
34 IF (v_asst_rec.closed_ind = cst_yes) THEN
35 P_MESSAGE_NAME := 'IGS_GE_RECORD_ALREADY_EXISTS';
36 RETURN FALSE;
37 END IF;
38 -- Return the default value
39 RETURN TRUE;
40 END;
41 EXCEPTION
42 WHEN OTHERS THEN
43 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
44 FND_MESSAGE.SET_TOKEN('NAME','IGS_AS_GEN_012.assp_val_asst_closed');
45 IGS_GE_MSG_STACK.ADD;
46 --APP_EXCEPTION.RAISE_EXCEPTION;
47 END assp_val_asst_closed;
48
49 -- Validate only one primary assessor per assessment item
50 FUNCTION assp_val_aia_primary(
51 p_ass_id IN IGS_AS_ITEM_ASSESSOR.ass_id%TYPE ,
52 p_person_id IN IGS_AS_ITEM_ASSESSOR.person_id%TYPE ,
53 p_sequence_number IN IGS_AS_ITEM_ASSESSOR.sequence_number%TYPE ,
54 P_MESSAGE_NAME OUT NOCOPY VARCHAR2 )
55 RETURN BOOLEAN AS
56
57 BEGIN -- assp_val_aia_primary
58 -- Validate that there is only one primary assessor per assessment item. As
59 -- the
60 -- same assessor can occur multiple times for an assessment item, we also need
61 -- to
62 -- validate that the other assessor records for the person have the indicator
63 -- set.
64 DECLARE
65 cst_yes CONSTANT CHAR := 'Y';
66 cst_no CONSTANT CHAR := 'N';
67 CURSOR c_aia1(
68 cp_ass_id IGS_AS_ITEM_ASSESSOR.ass_id%TYPE,
69 cp_person_id IGS_AS_ITEM_ASSESSOR.person_id%TYPE) IS
70 SELECT COUNT(*)
71 FROM IGS_AS_ITEM_ASSESSOR
72 WHERE ass_id = cp_ass_id AND
73 person_id <> cp_person_id AND
74 primary_assessor_ind = cst_yes;
75 CURSOR c_aia2(
76 cp_ass_id IGS_AS_ITEM_ASSESSOR.ass_id%TYPE,
77 cp_person_id IGS_AS_ITEM_ASSESSOR.person_id%TYPE,
78 cp_sequence_number IGS_AS_ITEM_ASSESSOR.sequence_number%TYPE) IS
79 SELECT COUNT(*)
80 FROM IGS_AS_ITEM_ASSESSOR
81 WHERE ass_id = cp_ass_id AND
82 person_id = cp_person_id AND
83 sequence_number <> cp_sequence_number AND
84 primary_assessor_ind = cst_no;
85 v_aia1_count NUMBER;
86 v_aia2_count NUMBER;
87 BEGIN
88 -- Set the default message number
89 P_MESSAGE_NAME := NULL;
90 -- Validate no other PERSON is tagged as the primary assessor
91 OPEN c_aia1(
92 p_ass_id,
93 p_person_id);
94 FETCH c_aia1 INTO v_aia1_count;
95 CLOSE c_aia1;
96 IF (v_aia1_count > 0) THEN
97 P_MESSAGE_NAME := 'IGS_AS_ONE_PRSN_IDENTIFY_PRIM';
98 RETURN FALSE;
99 END IF;
100
101 -- Return the default value
102 RETURN TRUE;
103 END;
104 EXCEPTION
105 WHEN OTHERS THEN
106 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
107 FND_MESSAGE.SET_TOKEN('NAME','IGS_AS_GEN_012.assp_val_aia_primary');
108 IGS_GE_MSG_STACK.ADD;
109 --APP_EXCEPTION.RAISE_EXCEPTION;
110 END assp_val_aia_primary;
111 --
112 -- Validate assessor links for invalid combinations.
113 FUNCTION assp_val_aia_links(
114 p_ass_id IN IGS_AS_ITEM_ASSESSOR.ass_id%TYPE ,
115 p_person_id IN IGS_AS_ITEM_ASSESSOR.person_id%TYPE ,
116 p_sequence_number IN IGS_AS_ITEM_ASSESSOR.sequence_number%TYPE ,
117 p_location_cd IN IGS_AS_ITEM_ASSESSOR.location_cd%TYPE ,
118 p_unit_mode IN IGS_AS_ITEM_ASSESSOR.unit_mode%TYPE ,
119 p_unit_class IN IGS_AS_ITEM_ASSESSOR.unit_class%TYPE ,
120 p_ass_assessor_type IN IGS_AS_ITEM_ASSESSOR.ass_assessor_type%TYPE ,
121 P_MESSAGE_NAME OUT NOCOPY VARCHAR2 )
122 RETURN BOOLEAN AS
123 BEGIN
124 p_message_name := NULL;
125 RETURN TRUE;
126 END assp_val_aia_links;
127 --
128 -- Generic links validation routine.
129 FUNCTION ASSP_VAL_OPTNL_LINKS(
130 p_new_location_cd IN IGS_AS_ITEM_ASSESSOR.location_cd%TYPE ,
131 p_new_unit_mode IN IGS_AS_ITEM_ASSESSOR.unit_mode%TYPE ,
132 p_new_unit_class IN IGS_AS_ITEM_ASSESSOR.unit_class%TYPE ,
133 p_db_location_cd IN IGS_AS_ITEM_ASSESSOR.location_cd%TYPE ,
134 p_db_unit_mode IN IGS_AS_ITEM_ASSESSOR.unit_mode%TYPE ,
135 p_db_unit_class IN IGS_AS_ITEM_ASSESSOR.unit_class%TYPE ,
136 p_message_name OUT NOCOPY VARCHAR2 )
137 RETURN BOOLEAN AS
138 BEGIN
139 p_message_name := NULL;
140 RETURN TRUE;
141 END assp_val_optnl_links;
142 --
143 -- Routine to clear rowids saved in a PL/SQL TABLE from a prior commit.
144 --
145 -- Process AIA rowids in a PL/SQL TABLE for the current commit.
146
147 END IGS_AS_VAL_AIA;