[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;