1
2
3
4
5
6
7
8
9
10
11
12 package fr.hyphonem.conges.actions;
13
14 import java.io.IOException;
15 import java.util.Vector;
16
17 import javax.servlet.ServletException;
18 import javax.servlet.http.HttpServletRequest;
19 import javax.servlet.http.HttpServletResponse;
20 import javax.servlet.http.HttpSession;
21
22 import org.apache.struts.action.Action;
23 import org.apache.struts.action.ActionError;
24 import org.apache.struts.action.ActionErrors;
25 import org.apache.struts.action.ActionForm;
26 import org.apache.struts.action.ActionForward;
27 import org.apache.struts.action.ActionMapping;
28
29 import fr.hyphonem.conges.AccessData;
30 import fr.hyphonem.conges.AccessDataMng;
31 import fr.hyphonem.conges.data.ReasonData;
32 import fr.hyphonem.conges.data.UserData;
33 import fr.hyphonem.conges.forms.ModifyReasonForm;
34
35
36
37
38 public class ValidModifyReasonsAction extends Action {
39
40
41
42
43 public ValidModifyReasonsAction() {
44 super();
45 }
46
47 public ActionForward execute(ActionMapping mapping, ActionForm form,
48 HttpServletRequest request, HttpServletResponse response)
49 throws java.io.IOException, ServletException {
50 HttpSession session = request.getSession();
51 if (session.getAttribute("user") == null) {
52 return mapping.findForward("invalidsession");
53 }
54
55 UserData userd = (UserData) session.getAttribute("user");
56
57 if (userd.isModif() || userd.isEmployee()) {
58 return mapping.findForward("invalidaction");
59 }
60
61 ActionErrors errors = new ActionErrors();
62
63 ModifyReasonForm modifiedReason = (ModifyReasonForm) form;
64
65 String couleur0 = modifiedReason.getCouleurRaison0();
66 String nom0 = modifiedReason.getNomRaison0();
67 String oldnom0 = modifiedReason.getOldNomRaison0();
68 String couleur1 = modifiedReason.getCouleurRaison1();
69 String nom1 = modifiedReason.getNomRaison1();
70 String oldnom1 = modifiedReason.getOldNomRaison1();
71 String couleur2 = modifiedReason.getCouleurRaison2();
72 String nom2 = modifiedReason.getNomRaison2();
73 String oldnom2 = modifiedReason.getOldNomRaison2();
74 String couleur3 = modifiedReason.getCouleurRaison3();
75 String nom3 = modifiedReason.getNomRaison3();
76 String oldnom3 = modifiedReason.getOldNomRaison3();
77 String couleur4 = modifiedReason.getCouleurRaison4();
78 String nom4 = modifiedReason.getNomRaison4();
79 String oldnom4 = modifiedReason.getOldNomRaison4();
80 String couleur5 = modifiedReason.getCouleurRaison5();
81 String nom5 = modifiedReason.getNomRaison5();
82 String oldnom5 = modifiedReason.getOldNomRaison5();
83 String couleur6 = modifiedReason.getCouleurRaison6();
84 String nom6 = modifiedReason.getNomRaison6();
85 String oldnom6 = modifiedReason.getOldNomRaison6();
86 String couleur7 = modifiedReason.getCouleurRaison7();
87 String nom7 = modifiedReason.getNomRaison7();
88 String oldnom7 = modifiedReason.getOldNomRaison7();
89
90 ReasonData reason0 = new ReasonData();
91 reason0.setCouleur(couleur0);
92 reason0.setNom(nom0);
93
94 ReasonData reason1 = new ReasonData();
95 reason1.setCouleur(couleur1);
96 reason1.setNom(nom1);
97
98 ReasonData reason2 = new ReasonData();
99 reason2.setCouleur(couleur2);
100 reason2.setNom(nom2);
101
102 ReasonData reason3 = new ReasonData();
103 reason3.setCouleur(couleur3);
104 reason3.setNom(nom3);
105
106 ReasonData reason4 = new ReasonData();
107 reason4.setCouleur(couleur4);
108 reason4.setNom(nom4);
109
110 ReasonData reason5 = new ReasonData();
111 reason5.setCouleur(couleur5);
112 reason5.setNom(nom5);
113
114 ReasonData reason6 = new ReasonData();
115 reason6.setCouleur(couleur6);
116 reason6.setNom(nom6);
117
118 ReasonData reason7 = new ReasonData();
119 reason7.setCouleur(couleur7);
120 reason7.setNom(nom7);
121
122 Vector reasons = new Vector();
123 if (reason0.getNom() != null && reason0.getNom().trim().length() > 0) {
124 reasons.add(reason0);
125 }
126 if (reason1.getNom() != null && reason1.getNom().trim().length() > 0) {
127 reasons.add(reason1);
128 }
129 if (reason2.getNom() != null && reason2.getNom().trim().length() > 0) {
130 reasons.add(reason2);
131 }
132 if (reason3.getNom() != null && reason3.getNom().trim().length() > 0) {
133 reasons.add(reason3);
134 }
135 if (reason4.getNom() != null && reason4.getNom().trim().length() > 0) {
136 reasons.add(reason4);
137 }
138 if (reason5.getNom() != null && reason5.getNom().trim().length() > 0) {
139 reasons.add(reason5);
140 }
141 if (reason6.getNom() != null && reason6.getNom().trim().length() > 0) {
142 reasons.add(reason6);
143 }
144 if (reason7.getNom() != null && reason7.getNom().trim().length() > 0) {
145 reasons.add(reason7);
146 }
147 session.getServletContext().setAttribute("reasons", reasons);
148
149 String dataDirPath = (String) session.getAttribute("dataDirPath");
150 AccessData ad = new AccessDataMng().getInstance(dataDirPath);
151 try {
152 ad.writeReasons(reasons);
153 } catch (IOException e) {
154 errors.add("error.concurrent.access", new ActionError(
155 "error.concurrent.access"));
156 } catch (Exception e) {
157 System.out.println(e.getMessage());
158 }
159
160
161 java.util.Vector params = (java.util.Vector) session
162 .getServletContext().getAttribute("params");
163 for (int i = 0; i < params.size(); i++) {
164 fr.hyphonem.conges.data.ParamsData prd = (fr.hyphonem.conges.data.ParamsData) params
165 .get(i);
166 String raison = prd.getReason();
167 if (raison.equalsIgnoreCase(oldnom0)) {
168 prd.setReason(nom0);
169 }
170 if (raison.equalsIgnoreCase(oldnom1)) {
171 prd.setReason(nom1);
172 }
173 if (raison.equalsIgnoreCase(oldnom2)) {
174 prd.setReason(nom2);
175 }
176 if (raison.equalsIgnoreCase(oldnom3)) {
177 prd.setReason(nom3);
178 }
179 if (raison.equalsIgnoreCase(oldnom4)) {
180 prd.setReason(nom4);
181 }
182 if (raison.equalsIgnoreCase(oldnom5)) {
183 prd.setReason(nom5);
184 }
185 if (raison.equalsIgnoreCase(oldnom6)) {
186 prd.setReason(nom6);
187 }
188 if (raison.equalsIgnoreCase(oldnom7)) {
189 prd.setReason(nom7);
190 }
191 params.set(i, prd);
192 }
193 session.getServletContext().setAttribute("params", params);
194
195 try {
196 ad.writeParams(params);
197 } catch (IOException e) {
198 errors.add("error.concurrent.access", new ActionError(
199 "error.concurrent.access"));
200 } catch (Exception e) {
201 System.out.println(e.getMessage());
202 throw new ServletException(e);
203 }
204
205 Vector employees = (Vector) session.getServletContext().getAttribute(
206 "employees");
207 try {
208
209 if (!nom0.equals(oldnom0)) {
210 ad.replaceOldWithNewReason(oldnom0, nom0, employees);
211 }
212 if (!nom1.equals(oldnom1)) {
213 ad.replaceOldWithNewReason(oldnom1, nom1, employees);
214 }
215 if (!nom2.equals(oldnom2)) {
216 ad.replaceOldWithNewReason(oldnom2, nom2, employees);
217 }
218 if (!nom3.equals(oldnom3)) {
219 ad.replaceOldWithNewReason(oldnom3, nom3, employees);
220 }
221 if (!nom4.equals(oldnom4)) {
222 ad.replaceOldWithNewReason(oldnom4, nom4, employees);
223 }
224 if (!nom5.equals(oldnom5)) {
225 ad.replaceOldWithNewReason(oldnom5, nom5, employees);
226 }
227 if (!nom6.equals(oldnom6)) {
228 ad.replaceOldWithNewReason(oldnom6, nom6, employees);
229 }
230 if (!nom7.equals(oldnom7)) {
231 ad.replaceOldWithNewReason(oldnom7, nom7, employees);
232 }
233 } catch (IOException e) {
234 errors.add("error.concurrent.access", new ActionError(
235 "error.concurrent.access"));
236 } catch (Exception e) {
237 throw new ServletException(e);
238 }
239 if (!errors.isEmpty()) {
240 saveErrors(request, errors);
241 return mapping.getInputForward();
242 }
243 return mapping.findForward("success");
244 }
245 }