DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_CA_VAL_DAI

Source


1 PACKAGE BODY IGS_CA_VAL_DAI AS
2 /* $Header: IGSCA07B.pls 115.4 2002/12/19 15:38:54 npalanis ship $ */
3   -- Validate calendar category is HOLIDAY.
4   FUNCTION calp_val_holiday_cat(
5   p_cal_type IN VARCHAR2 ,
6   p_message_name OUT NOCOPY VARCHAR2 )
7   RETURN BOOLEAN AS
8   	v_other_detail	VARCHAR2(255);
9   	v_s_cal_cat	IGS_CA_TYPE.s_cal_cat%TYPE;
10   	CURSOR c_get_holiday_cat IS
11   		SELECT s_cal_cat
12   		FROM IGS_CA_TYPE
13   		WHERE cal_type = p_cal_type;
14   BEGIN
15   	p_message_name :=NULL;
16   	OPEN c_get_holiday_cat;
17   	FETCH c_get_holiday_cat INTO v_s_cal_cat;
18   	IF (c_get_holiday_cat%NOTFOUND) THEN
19   		CLOSE c_get_holiday_cat;
20   		RETURN TRUE;
21   	END IF;
22   	CLOSE c_get_holiday_cat;
23   	IF (v_s_cal_cat = 'HOLIDAY') THEN
24   		RETURN TRUE;
25   	ELSE
26   		RETURN FALSE;
27   	END IF;
28 
29   END calp_val_holiday_cat;
30   --
31   -- To validate the insert of a IGS_CA_DA_INST record
32   FUNCTION calp_val_dai_upd(
33   p_dt_alias IN VARCHAR2 ,
34   p_sequence_number IN NUMBER ,
35   p_cal_type IN VARCHAR2 ,
36   p_ci_sequence_number IN NUMBER ,
37   p_message_name OUT NOCOPY VARCHAR2 )
38   RETURN boolean AS
39   	v_other_detail		VARCHAR2(255);
40   	v_dt_alias_inst_found	BOOLEAN;
41   	v_alias_val		IGS_CA_DA_INST_V.alias_val%TYPE;
42   	CURSOR	c_dt_alias_instance_1(cp_dt_alias IGS_CA_DA_INST_V.dt_alias%TYPE,
43   				      cp_sequence_number IGS_CA_DA_INST_V.sequence_number%TYPE,
44   				      cp_cal_type IGS_CA_DA_INST_V.cal_type%TYPE,
45   				      cp_ci_sequence_number IGS_CA_DA_INST_V.ci_sequence_number%TYPE)
46   	IS
47   	SELECT	*
48   	FROM	IGS_CA_DA_INST_V
49   	WHERE	dt_alias = cp_dt_alias
50   	AND	sequence_number = cp_sequence_number
51   	AND	cal_type = cp_cal_type
52   	AND	ci_sequence_number = cp_ci_sequence_number;
53   	CURSOR	c_dt_alias_instance_2(cp_dt_alias IGS_CA_DA_INST_V.dt_alias%TYPE,
54   				      cp_sequence_number IGS_CA_DA_INST_V.sequence_number%TYPE,
55   				      cp_cal_type IGS_CA_DA_INST_V.cal_type%TYPE,
56   				      cp_ci_sequence_number IGS_CA_DA_INST_V.ci_sequence_number%TYPE,
57   				      cp_alias_val IGS_CA_DA_INST_V.alias_val%TYPE)
58   	IS
59   	SELECT	*
60   	FROM	IGS_CA_DA_INST_V
61   	WHERE	dt_alias = cp_dt_alias
62   	AND	sequence_number <> cp_sequence_number
63   	AND	cal_type = cp_cal_type
64   	AND	ci_sequence_number = cp_ci_sequence_number
65   	AND	alias_val IS NOT NULL
66   	AND	alias_val = cp_alias_val;
67   BEGIN
68   	p_message_name := NULL;
69   	v_dt_alias_inst_found := FALSE;
70   	FOR v_dt_alias_instance_rec_1 IN c_dt_alias_instance_1(
71   				p_dt_alias,
72   				p_sequence_number,
73   				p_cal_type,
74   				p_ci_sequence_number)
75   	LOOP
76   		v_dt_alias_inst_found := TRUE;
77   		v_alias_val := v_dt_alias_instance_rec_1.alias_val;
78   	END LOOP;
79   	IF (v_dt_alias_inst_found AND v_alias_val IS NULL) THEN
80   		p_message_name :=NULL;
81   		RETURN TRUE;
82   	END IF;
83   	FOR v_dt_alias_instance_rec_2 IN c_dt_alias_instance_2(
84   				p_dt_alias,
85   				p_sequence_number,
86   				p_cal_type,
87   				p_ci_sequence_number,
88   				v_alias_val)
89   	LOOP
90   		p_message_name := 'IGS_CA_DUPLICATE_DTALIAS_INST';
91   		RETURN FALSE;
92   	END LOOP;
93   	RETURN TRUE;
94   	EXCEPTION
95   	WHEN OTHERS THEN
96 
97      Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
98      FND_MESSAGE.SET_TOKEN('NAME','IGS_CA_VAL_DAI.calp_val_dai_upd');
99      IGS_GE_MSG_STACK.ADD;
100      App_Exception.Raise_Exception;
101   END calp_val_dai_upd;
102   --
103   -- Validate the dt_alias of the IGS_CA_DA_INST
104   FUNCTION CALP_VAL_DAI_DA(
105   p_dt_alias IN VARCHAR2 ,
106   p_cal_type IN VARCHAR2 ,
107   p_message_name OUT NOCOPY VARCHAR2 )
108   RETURN boolean AS
109   CURSOR	c_dt_alias
110   IS
111   SELECT 	closed_ind,
112   	s_cal_cat
113   FROM	IGS_CA_DA
114   WHERE	dt_alias = p_dt_alias;
115   CURSOR	c_cal_type
116   IS
117   SELECT 	s_cal_cat
118   FROM	IGS_CA_TYPE
119   WHERE	cal_type = p_cal_type;
120   v_dt_alias_closed_ind	VARCHAR2(1);
121   v_dt_alias_s_cal_cat	IGS_CA_DA.S_CAL_CAT%TYPE;
122   v_cal_type_s_cal_cat	IGS_CA_TYPE.S_CAL_CAT%TYPE;
123   v_other_detail		VARCHAR2(255);
124   BEGIN
125   	OPEN 	c_dt_alias;
126   	LOOP
127   		FETCH 	c_dt_alias
128   		INTO	v_dt_alias_closed_ind,
129   			v_dt_alias_s_cal_cat;
130   		EXIT WHEN c_dt_alias%NOTFOUND;
131   		IF (v_dt_alias_closed_ind = 'Y') THEN
132   			CLOSE c_dt_alias;
133   			p_message_name := 'IGS_CA_DTALIAS_CLOSED';
134   			RETURN FALSE;
135   		END IF;
136   	END LOOP;
137   	IF (v_dt_alias_s_cal_cat IS NOT NULL) THEN
138   		OPEN 	c_cal_type;
139   		LOOP
140   			FETCH 	c_cal_type
141   			INTO	v_cal_type_s_cal_cat;
142   			EXIT WHEN c_cal_type%NOTFOUND;
143   			IF (v_dt_alias_s_cal_cat <> v_cal_type_s_cal_cat) THEN
144   				CLOSE c_dt_alias;
145   				CLOSE c_cal_type;
146   				p_message_name := 'IGS_CA_DTALIAS_CALCAT_NOMATCH';
147   				RETURN FALSE;
148   			END IF;
149   		END LOOP;
150   		CLOSE c_cal_type;
151   	END IF;
152   	CLOSE c_dt_alias;
153   	p_message_name := NULL;
154   	RETURN TRUE;
155     END calp_val_dai_da;
156 END IGS_CA_VAL_DAI;