DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_VAL_DMS

Source


1 PACKAGE BODY IGS_RE_VAL_DMS AS
2 /* $Header: IGSRE08B.pls 115.3 2002/11/29 03:28:28 nsidana ship $ */
3   --
4   -- To validate IGS_RE_DFLT_MS_SET uniqueness
5   FUNCTION RESP_VAL_DMS_UNIQ(
6   p_course_cd IN VARCHAR2 ,
7   p_version_number IN NUMBER ,
8   p_attendance_type IN VARCHAR2 ,
9   p_message_name OUT NOCOPY VARCHAR2 )
10   RETURN BOOLEAN AS
11   BEGIN	-- resp_val_dms_uniq
12   	-- Validate that there are not ?logically? duplicate default IGS_PR_MILESTONE
13   	-- records within a IGS_PS_COURSE version/attendance type combination.
14   	--	ie. same milestone_type and offset_days.
15   	-- This check is designed to be placed in a post-forms-commit section
16   	-- of a form or an after statement of a database trigger.
17   DECLARE
18   	v_return_false 	BOOLEAN;
19   	CURSOR c_dms IS
20   		SELECT	dms.course_cd,
21   			dms.version_number,
22   			dms.attendance_type,
23   			dms.milestone_type,
24   			dms.offset_days,
25   			count('x')		duplicate_count
26   		FROM	IGS_RE_DFLT_MS_SET	dms
27   		WHERE	course_cd		= p_course_cd AND
28   			dms.version_number	= p_version_number AND
29   			dms.attendance_type	= p_attendance_type
30   		GROUP BY
31   			dms.course_cd,
32   			dms.version_number,
33   			dms.attendance_type,
34   			dms.milestone_type,
35   			dms.offset_days;
36   BEGIN
37   	-- Set the defaults
38   	p_message_name := null;
39   	v_return_false := FALSE;
40   	FOR v_dms_rec IN c_dms LOOP
41   		IF v_dms_rec.duplicate_count > 1 THEN
42   			p_message_name := 'IGS_RE_2_MILSTON_HAV_SAMEOFFS';
43   			v_return_false := TRUE;
44   			EXIT;
45   		END IF;
46   	END LOOP;
47   	IF v_return_false THEN
48   		RETURN FALSE;
49   	END IF;
50   	RETURN TRUE;
51   EXCEPTION
52   	WHEN OTHERS THEN
53   		IF c_dms%ISOPEN THEN
54   			CLOSE c_dms;
55   		END IF;
56   		RAISE;
57   END;
58   EXCEPTION
59 	WHEN OTHERS THEN
60 		Fnd_Message.Set_Name ('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
61 		IGS_GE_MSG_STACK.ADD;
62 		App_Exception.Raise_Exception;
63   END resp_val_dms_uniq;
64 END IGS_RE_VAL_DMS;