1 PACKAGE BODY igs_tr_val_tri AS
2 /* $Header: IGSTR03B.pls 115.7 2003/02/19 10:24:44 kpadiyar ship $ */
3 -- msrinivi bug 1956374 . removed genp_val_prsn_id
4 -- Validate that the date is a business day
5 FUNCTION genp_val_bus_day(
6 p_date IN DATE ,
7 p_weekend_ind IN VARCHAR2 DEFAULT 'N',
8 p_uni_holiday_ind IN VARCHAR2 DEFAULT 'N',
9 p_message_name OUT NOCOPY VARCHAR2 )
10 RETURN BOOLEAN IS
11 BEGIN
12
13 DECLARE
14
15 v_other_detail VARCHAR(255);
16 v_day VARCHAR2(20);
17
18 BEGIN
19
20 -- This module validates that the date passed in is
21 -- a valid business day
22 p_message_name := NULL;
23 -- kdande --
24 v_day := RTRIM(TO_CHAR(p_date,'d'));
25 IF(p_weekend_ind = 'N' ) THEN
26 -- kdande --
27 IF(v_day = '7' OR v_day = '1') THEN
28 p_message_name := 'IGS_GE_DATE_IS_IN_WEEKEND';
29 RETURN FALSE;
30 END IF;
31 END IF;
32 RETURN TRUE;
33
34 END;
35
36 END genp_val_bus_day;
37
38 -- Validate the status for a tracking item.
39 FUNCTION trkp_val_tri_status(
40 p_tracking_status IN VARCHAR2 ,
41 p_inserting IN BOOLEAN ,
42 p_message_name OUT NOCOPY VARCHAR2 )
43 RETURN BOOLEAN IS
44
45 gv_other_detail VARCHAR2(255);
46 lv_param_values VARCHAR2(1080);
47
48 BEGIN
49
50 -- Validate the IGS_TR_ITEM.tracking_status.
51 DECLARE
52
53 v_s_tracking_status igs_tr_status.s_tracking_status%TYPE;
54 v_closed_ind igs_tr_status.closed_ind%TYPE;
55
56 CURSOR c_get_closed_ind ( cp_tracking_status igs_tr_item.tracking_status%TYPE) IS
57 SELECT s_tracking_status, closed_ind
58 FROM igs_tr_status
59 WHERE tracking_status = cp_tracking_status;
60
61 BEGIN
62
63 p_message_name := NULL;
64 OPEN c_get_closed_ind(p_tracking_status);
65
66 FETCH c_get_closed_ind INTO v_s_tracking_status, v_closed_ind;
67
68 IF (c_get_closed_ind%NOTFOUND) THEN
69 CLOSE c_get_closed_ind;
70 RETURN TRUE;
71 END IF;
72
73 CLOSE c_get_closed_ind;
74
75 IF (v_closed_ind = 'Y') THEN
76 p_message_name := 'IGS_TR_STATUS_CLOSED';
77 RETURN FALSE;
78 END IF;
79
80 -- Validate that the status is active when inserting.
81 IF p_inserting THEN
82 IF v_s_tracking_status <> 'ACTIVE' THEN
83 p_message_name := 'IGS_TR_MUST_HAVE_STATUS_ACTIV';
84 RETURN FALSE;
85 END IF;
86 END IF;
87
88 RETURN TRUE;
89
90 END;
91
92 EXCEPTION
93 WHEN OTHERS THEN
94 fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXP');
95 fnd_message.set_token('NAME','IGS_TR_VAL_TRI.trkp_val_tri_status');
96 igs_ge_msg_stack.add;
97 lv_param_values:=p_tracking_status;
98 fnd_message.set_name('IGS','IGS_GE_PARAMETERS');
99 fnd_message.set_token('VALUE',lv_param_values);
100 igs_ge_msg_stack.add;
101 app_exception.raise_exception;
102
103 END trkp_val_tri_status;
104
105 -- Validate the tracking type for a tracking item.
106 FUNCTION trkp_val_tri_type(
107 p_tracking_type IN VARCHAR2 ,
108 p_message_name OUT NOCOPY VARCHAR2 )
109 RETURN BOOLEAN IS
110
111 gv_other_detail VARCHAR2(255);
112 lv_param_values VARCHAR2(1080);
113
114 BEGIN
115
116 -- Validate the IGS_TR_ITEM.tracking_type.
117 DECLARE
118
119 v_closed_ind igs_tr_type.closed_ind%TYPE;
120 CURSOR c_get_closed_ind ( cp_tracking_type igs_tr_item.tracking_type%TYPE) IS
121 SELECT closed_ind
122 FROM igs_tr_type
123 WHERE tracking_type = cp_tracking_type;
124
125 BEGIN
126
127 p_message_name := NULL;
128 OPEN c_get_closed_ind(p_tracking_type);
129 FETCH c_get_closed_ind INTO v_closed_ind;
130 IF (c_get_closed_ind%NOTFOUND) THEN
131 CLOSE c_get_closed_ind;
132 RETURN TRUE;
133 END IF;
134 CLOSE c_get_closed_ind;
135
136 IF (v_closed_ind = 'N') THEN
137 RETURN TRUE;
138 END IF;
139
140 p_message_name := 'IGS_TR_TYPE_CLOSED';
141
142 RETURN FALSE;
143
144 END;
145
146 EXCEPTION
147 WHEN OTHERS THEN
148 fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXP');
149 fnd_message.set_token('NAME','IGS_TR_VAL_TRI.trkp_val_tri_type');
150 igs_ge_msg_stack.add;
151 lv_param_values:=p_tracking_type;
152 fnd_message.set_name('IGS','IGS_GE_PARAMETERS');
153 fnd_message.set_token('VALUE',lv_param_values);
154 igs_ge_msg_stack.add;
155 app_exception.raise_exception;
156
157 END trkp_val_tri_type;
158
159 -- Validate the tracking item start date.
160 FUNCTION trkp_val_tri_strt_dt(
161 p_start_dt IN DATE ,
162 p_message_name OUT NOCOPY VARCHAR2 )
163 RETURN BOOLEAN IS
164 BEGIN
165 DECLARE
166
167 v_other_detail VARCHAR(255);
168 cst_min_dt CONSTANT DATE := igs_ge_date.igsdate ('1950/01/01');
169 cst_max_dt CONSTANT DATE := igs_ge_date.igsdate ('9999/01/01');
170 lv_param_values VARCHAR2(1080);
171
172 BEGIN
173
174 -- This module validates IGS_TR_ITEM.start_dt is within
175 -- a valid range for date manipulation within the form.
176 p_message_name := NULL;
177
178 IF NOT (p_start_dt BETWEEN cst_min_dt AND cst_max_dt) THEN
179 p_message_name := 'IGS_TR_ST_DT_1950_2045';
180 RETURN FALSE;
181 END IF;
182 RETURN TRUE;
183
184 EXCEPTION
185 WHEN OTHERS THEN
186 fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXP');
187 fnd_message.set_token('NAME','IGS_TR_VAL_TRI.trkp_val_tri_strt_dt');
188 igs_ge_msg_stack.add;
189 lv_param_values:=p_start_dt;
190 fnd_message.set_name('IGS','IGS_GE_PARAMETERS');
191 fnd_message.set_token('VALUE',lv_param_values);
192 igs_ge_msg_stack.add;
193 app_exception.raise_exception;
194
195 END;
196
197 END trkp_val_tri_strt_dt;
198
199
200 FUNCTION val_tr_step_ctlg(
201 p_step_catalog_cd IN VARCHAR2 ,
202 p_message_name OUT NOCOPY VARCHAR2 )
203 RETURN BOOLEAN IS
204 v_closed_ind igs_tr_step_ctlg.closed_ind%TYPE;
205
206 CURSOR c_get_closed_ind ( cp_step_catalog_cd igs_tr_step_ctlg.step_catalog_cd%TYPE) IS
207 SELECT closed_ind
208 FROM igs_tr_step_ctlg
209 WHERE step_catalog_cd = cp_step_catalog_cd;
210
211 BEGIN
212
213 p_message_name := NULL;
214 OPEN c_get_closed_ind(p_step_catalog_cd);
215 FETCH c_get_closed_ind INTO v_closed_ind;
216 IF (c_get_closed_ind%NOTFOUND) THEN
217 CLOSE c_get_closed_ind;
218 RETURN TRUE;
219 END IF;
220 CLOSE c_get_closed_ind;
221 IF (v_closed_ind = 'Y') THEN
222 p_message_name := 'IGS_TR_STEP_CTLG_CLOSED';
223 RETURN FALSE;
224 END IF;
225 RETURN TRUE;
226 END val_tr_step_ctlg;
227
228 END igs_tr_val_tri;