DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_VAL_CRFC

Source


1 PACKAGE BODY IGS_PS_VAL_CRFC AS
2  /* $Header: IGSPS32B.pls 115.3 2002/11/29 03:01:38 nsidana ship $ */
3   --
4   -- Validate the reference code type
5   FUNCTION crsp_val_ref_cd_type(
6   p_reference_cd_type IN VARCHAR2 ,
7   p_message_name OUT NOCOPY VARCHAR2 )
8   RETURN BOOLEAN AS
9   	v_closed_ind		IGS_GE_REF_CD_TYPE.closed_ind%TYPE;
10   	CURSOR	c_reference_cd_type IS
11    		SELECT 	closed_ind
12   		FROM	IGS_GE_REF_CD_TYPE
13   		WHERE	reference_cd_type = p_reference_cd_type;
14   BEGIN
15   	OPEN c_reference_cd_type;
16   	FETCH c_reference_cd_type INTO v_closed_ind;
17   	IF c_reference_cd_type%NOTFOUND THEN
18   		p_message_name := NULL;
19   		CLOSE c_reference_cd_type;
20   		RETURN TRUE;
21   	ELSIF (v_closed_ind = 'N') THEN
22   		p_message_name := NULL;
23   		CLOSE c_reference_cd_type;
24   		RETURN TRUE;
25   	ELSE
26   		p_message_name := 'IGS_PS_REFCD_TYPE_CLOSED';
27   		CLOSE c_reference_cd_type;
28   		RETURN FALSE;
29   	END IF;
30   EXCEPTION
31   	WHEN OTHERS THEN
32 		FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXCEPTION');
33 		Fnd_Message.Set_Token('NAME','IGS_PS_VAL_CRFC.crsp_val_ref_cd_type');
34 		IGS_GE_MSG_STACK.ADD;
35 		APP_EXCEPTION.RAISE_EXCEPTION;
36   END crsp_val_ref_cd_type;
37   --
38   -- Validate that only one open reference code type exists
39   FUNCTION crsp_val_crfc_rct(
40   p_course_cd IN IGS_PS_REF_CD.course_cd%TYPE ,
41   p_version_number IN IGS_PS_REF_CD.version_number%TYPE ,
42   p_reference_cd_type IN VARCHAR2 ,
43   p_reference_cd IN IGS_PS_REF_CD.reference_cd%TYPE ,
44   p_message_name OUT NOCOPY VARCHAR2 )
45   RETURN BOOLEAN AS
46   BEGIN	-- crsp_val_crfc_rct
47   	-- This module validates whether an open Reference Code Type
48   	-- already exists for the System Reference Code Type.
49   DECLARE
50   	v_s_reference_cd_type	IGS_GE_REF_CD_TYPE.s_reference_cd_type%TYPE;
51   	v_count			NUMBER DEFAULT 0;
52   	CURSOR	c_rct IS
53   		SELECT	rct.s_reference_cd_type
54   		FROM	IGS_GE_REF_CD_TYPE	rct
55   		WHERE	rct.reference_cd_type = p_reference_cd_type;
56   	CURSOR c_crfc_rct (
57   		cp_s_reference_cd_type		IGS_GE_REF_CD_TYPE.s_reference_cd_type%TYPE) IS
58   		SELECT	COUNT(*)
59   		FROM	IGS_PS_REF_CD	crfc,
60   			IGS_GE_REF_CD_TYPE	rct
61   		WHERE	crfc.course_cd		= p_course_cd AND
62   			crfc.version_number	= p_version_number AND
63   			(crfc.reference_cd_type	<> p_reference_cd_type OR
64   			crfc.reference_cd	<> p_reference_cd) AND
65   			rct.reference_cd_type	= crfc.reference_cd_type AND
66   			rct.s_reference_cd_type	= cp_s_reference_cd_type AND
67   			rct.closed_ind		= 'N';
68   BEGIN
69   	OPEN c_rct;
70   	FETCH c_rct INTO v_s_reference_cd_type;
71   	CLOSE c_rct;
72   	OPEN c_crfc_rct(v_s_reference_cd_type);
73   	FETCH c_crfc_rct INTO v_count;
74   	CLOSE c_crfc_rct;
75   	IF v_count > 0 THEN
76   		p_message_name := 'IGS_PS_OPEN_REFCDTYPE_EXIST';
77   		RETURN FALSE;
78   	END IF;
79   	p_message_name := NULL;
80   	RETURN TRUE;
81   EXCEPTION
82   	WHEN OTHERS THEN
83   		IF (c_rct%ISOPEN) THEN
84   			CLOSE c_rct;
85   		END IF;
86   		IF (c_crfc_rct%ISOPEN) THEN
87   			CLOSE c_crfc_rct;
88   		END IF;
89   		APP_EXCEPTION.RAISE_EXCEPTION;
90   END;
91   EXCEPTION
92 	WHEN OTHERS THEN
93 		FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXCEPTION');
94 		Fnd_Message.Set_Token('NAME','IGS_PS_VAL_CRFC.crsp_val_crfc_rct');
95 		IGS_GE_MSG_STACK.ADD;
96 		APP_EXCEPTION.RAISE_EXCEPTION;
97   END crsp_val_crfc_rct;
98 END IGS_PS_VAL_CRFC;