1
2
3
4 package ecar.taglib.util;
5
6 import java.util.ArrayList;
7 import java.util.Collection;
8 import java.util.Collections;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.jsp.JspException;
14 import javax.servlet.jsp.JspWriter;
15 import javax.servlet.jsp.tagext.Tag;
16 import javax.servlet.jsp.tagext.TagSupport;
17
18 import comum.util.Data;
19 import comum.util.ImagemAcompanhamento;
20 import comum.util.Util;
21
22 import ecar.dao.AbaDao;
23 import ecar.dao.AcompReferenciaItemDao;
24 import ecar.dao.ItemEstUsutpfuacDao;
25 import ecar.dao.PontoCriticoDao;
26 import ecar.dao.UsuarioDao;
27 import ecar.exception.ECARException;
28 import ecar.pojo.Aba;
29 import ecar.pojo.AcompReferenciaItemAri;
30 import ecar.pojo.AcompRelatorioArel;
31 import ecar.pojo.ItemEstUsutpfuacIettutfa;
32 import ecar.pojo.SisAtributoSatb;
33 import ecar.pojo.TipoAcompFuncAcompTafc;
34 import ecar.pojo.TipoFuncAcompTpfa;
35 import ecar.pojo.UsuarioUsu;
36 import ecar.util.Dominios;
37
38
39
40
41
42 public class BarraLinksRegAcompParecerTag extends TagSupport{
43
44
45
46
47 private static final long serialVersionUID = -6728974818698770839L;
48
49 private AcompReferenciaItemAri acompReferenciaItem;
50 private UsuarioUsu usuario;
51 private String selectedFuncao;
52 private AcompReferenciaItemAri acompReferenciaItemSubNivel;
53 private String primeiroAcomp;
54 private HttpServletRequest request;
55
56 private String srcImg;
57 private boolean liberado = false;
58 private static final String PATH_ACOMP = "/regAcompanhamento/elabAcompanhamento/";
59
60
61
62
63
64
65
66
67
68
69
70 @Override
71 public int doStartTag() throws JspException {
72
73 JspWriter writer = this.pageContext.getOut();
74 try {
75 StringBuffer s = new StringBuffer();
76 srcImg = "";
77 s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" id=\"abas\"><tr><td>");
78
79
80 String situacaoAba = "abadesabilitada";
81
82 String linkPrimeiro = "";
83 if(!"".equals(primeiroAcomp))
84 linkPrimeiro = "primeiroAcomp=" + primeiroAcomp + "&";
85
86 String link = "";
87 ItemEstUsutpfuacDao itemEstUsutpfuacDao = new ItemEstUsutpfuacDao(request);
88 List usuariosPermitidos = itemEstUsutpfuacDao.getUsuariosAcompanhamento(acompReferenciaItem.getItemEstruturaIett());
89
90
91
92 List funcoesAcompanhamento = new AcompReferenciaItemDao(null).getTipoFuncAcompByAcompRefrenciaItem(acompReferenciaItem);
93 Iterator it = funcoesAcompanhamento.iterator();
94
95 List listTipoAcompFuncAcomp = new ArrayList(getAcompReferenciaItem().getAcompReferenciaAref().getTipoAcompanhamentoTa().getTipoAcompFuncAcompTafcs());
96
97 while(it.hasNext()){
98 TipoFuncAcompTpfa tipoFuncaoAcomp = (TipoFuncAcompTpfa) it.next();
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 if(getAcompReferenciaItem() != null && getAcompReferenciaItem().getAcompRelatorioArels() != null && !getAcompReferenciaItem().getAcompRelatorioArels().isEmpty()){
117
118
119 AcompRelatorioArel arel = null;
120 for(Iterator itArel = getAcompReferenciaItem().getAcompRelatorioArels().iterator(); itArel.hasNext();){
121 AcompRelatorioArel auxArel = (AcompRelatorioArel) itArel.next();
122 if(auxArel.getTipoFuncAcompTpfa().equals(tipoFuncaoAcomp)){
123 arel = auxArel;
124 break;
125 }
126 }
127
128 if(arel == null){
129 continue;
130 }
131
132
133 TipoAcompFuncAcompTafc tafc = null;
134 for(Iterator itTafc = listTipoAcompFuncAcomp.iterator(); itTafc.hasNext();){
135 TipoAcompFuncAcompTafc tafcTemp = (TipoAcompFuncAcompTafc) itTafc.next();
136 if(tafcTemp.getTipoFuncAcompTpfa().equals(tipoFuncaoAcomp)){
137 tafc = tafcTemp;
138 break;
139 }
140 }
141
142
143 if(!Dominios.SIM.equals(arel.getIndLiberadoArel())){
144
145 if(tafc == null){
146 continue;
147 }
148 else {
149
150
151
152 if(Dominios.OPCIONAL.equals(tafc.getIndRegistroPosicaoTafc())){
153
154 if(usuario != null && !usuariosPermitidos.contains(usuario)){
155 continue;
156 }
157 }
158 }
159 }
160
161 String funcaoParecer = "ACOMP" + tipoFuncaoAcomp.getCodTpfa();
162
163 situacaoAba = "abadesabilitada";
164 if(funcaoParecer.equals(selectedFuncao))
165 situacaoAba = "abahabilitada";
166
167 link = request.getContextPath() + PATH_ACOMP + "acompRelatorio.jsp?"+ linkPrimeiro+"funcao=SITUACAO"+ "&funcaoParecer=" + funcaoParecer + "&codTpfa=" + tipoFuncaoAcomp.getCodTpfa() + "&";
168
169
170 String titulo = "<br>";
171 UsuarioUsu usu = null;
172 SisAtributoSatb sisAtributoSatb = null;
173 UsuarioDao usuDao = new UsuarioDao(null);
174
175
176 if(arel != null) {
177
178 usu = arel.getUsuarioUsuUltimaManutencao();
179
180 if(usu == null){
181 List funcoes = new ItemEstUsutpfuacDao(null).getFuacOrderByFuncAcomp(acompReferenciaItem.getItemEstruturaIett());
182 for (Iterator itUsu = funcoes.iterator(); itUsu.hasNext();) {
183 ItemEstUsutpfuacIettutfa fuac = (ItemEstUsutpfuacIettutfa) itUsu.next();
184
185 if(fuac.getTipoFuncAcompTpfa().equals(tipoFuncaoAcomp)){
186 if (fuac.getUsuarioUsu() != null){
187 usu = fuac.getUsuarioUsu();
188 } else if (fuac.getSisAtributoSatb() != null){
189 sisAtributoSatb = fuac.getSisAtributoSatb();
190 }
191 }
192 }
193 }
194
195 liberado = false;
196 srcImg = "";
197 if(arel.getDataUltManutArel() == null){
198 titulo += "Aguarda elaboração do parecer <br> ";
199 } else if(arel.getIndLiberadoArel() == null || "N".equals(arel.getIndLiberadoArel())) {
200 titulo += "Aguarda liberação do parecer <br> ";
201 } else if(arel.getIndLiberadoArel() != null || "S".equals(arel.getIndLiberadoArel())){
202 titulo += "Parecer liberado <br>Atualização: " + Data.parseDate(arel.getDataUltManutArel()) + "<br>";
203 liberado = true;
204 srcImg = Util.getURLImagemAcompanhamento(arel.getCor(), request, arel.getTipoFuncAcompTpfa());
205 }
206
207
208 if(usu != null){
209
210
211 if(usu.getNomeUsu() != null && !"".equals(usu.getNomeUsu()))
212 titulo += "Resp: " + usu.getNomeUsuSent() + "<br>";
213
214
215 String telefone = "";
216 if(usu.getComercDddUsu() != null && !"".equals(usu.getComercDddUsu()))
217 telefone += usu.getComercDddUsu();
218
219 if(usu.getComercTelefoneUsu() != null && !"".equals(usu.getComercTelefoneUsu())){
220 if(!"".equals(telefone))
221 telefone += " ";
222
223 telefone += usu.getComercTelefoneUsu();
224 }
225 titulo += "Tel: " + telefone + "<br>";
226
227 if (usuDao.getCelularByUsuario(usu) != null && !"".equals(usuDao.getCelularByUsuario(usu)))
228 titulo += "Cel: " + usuDao.getCelularByUsuario(usu) + "<br>";
229
230
231 if(!"".equals(titulo))
232 titulo += " <br> ";
233
234
235 titulo += usu.getEmail1UsuSent();
236 } else if (sisAtributoSatb != null){
237 titulo += "Resp: " + sisAtributoSatb.getDescricaoSatb() + "<br>";
238 }
239
240 }
241 else {
242 List funcoes = new ItemEstUsutpfuacDao(null).getFuacOrderByFuncAcomp(acompReferenciaItem.getItemEstruturaIett());
243 for (Iterator itUsu = funcoes.iterator(); itUsu.hasNext();) {
244 ItemEstUsutpfuacIettutfa fuac = (ItemEstUsutpfuacIettutfa) itUsu.next();
245
246 if(fuac.getTipoFuncAcompTpfa().equals(tipoFuncaoAcomp)){
247 if (fuac.getUsuarioUsu() != null){
248 usu = fuac.getUsuarioUsu();
249 } else if (fuac.getSisAtributoSatb() != null){
250 sisAtributoSatb = fuac.getSisAtributoSatb();
251 }
252
253 }
254 }
255 if (usu != null){
256 titulo += usu.getNomeUsuSent() + "Aguarda elaboração do parecer <br>";
257 } else if (sisAtributoSatb != null){
258 titulo += sisAtributoSatb.getDescricaoSatb() + "Aguarda elaboração do parecer <br>";
259 }
260
261 }
262
263 criaAbaFuncaoAcomp(situacaoAba, link, tipoFuncaoAcomp.getLabelPosicaoTpfa(), s, titulo, usu, sisAtributoSatb);
264 }
265 }
266
267
268
269 s.append("</td></tr></table>");
270 writer.print(s.toString());
271 } catch (Exception e) {
272 e.printStackTrace();
273 }
274 return Tag.SKIP_BODY;
275
276 }
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291 private void criaAbaFuncaoAcomp(String situacaoAba, String link, String label, StringBuffer s, String titulo, UsuarioUsu usu, SisAtributoSatb sisAtributoSatb) throws ECARException{
292 link += "codAri=" + acompReferenciaItem.getCodAri() + "&codAcomp=" + acompReferenciaItem.getAcompReferenciaAref().getCodAref();
293
294 s.append("<table class=\"").append(situacaoAba).append("\"><tr><td nowrap>");
295 UsuarioDao usuDAO = new UsuarioDao();
296 if(liberado || (usu != null && usu.getCodUsu().equals(usuario.getCodUsu()))) {
297 s.append("<a href=\"").append(link).append("\">");
298 s.append(label);
299 s.append("</a>");
300 } else if (sisAtributoSatb != null && usuDAO.getUsuariosBySisAtributoSatb(sisAtributoSatb).contains(usuario)){
301 s.append("<a href=\"").append(link).append("\">");
302 s.append(label);
303 s.append("</a>");
304 } else {
305 s.append(label);
306 }
307
308 if ( !liberado && (srcImg == null || "".equals(srcImg.trim())))
309 s.append(Util.getTagDica(label, request.getContextPath() , titulo));
310 else
311 s.append(Util.getTagDicaComImagemParecer(label, request.getContextPath(), srcImg, titulo));
312 s.append("</td></tr></table>");
313 }
314
315
316
317
318
319
320
321
322
323
324 @Override
325 public int doEndTag() throws JspException {
326
327 return Tag.EVAL_PAGE;
328 }
329
330
331
332
333
334
335
336
337
338 public AcompReferenciaItemAri getAcompReferenciaItem() {
339 return acompReferenciaItem;
340 }
341
342
343
344
345
346
347
348
349 public void setAcompReferenciaItem(AcompReferenciaItemAri acompReferenciaItem) {
350 this.acompReferenciaItem = acompReferenciaItem;
351 }
352
353
354
355
356
357
358
359
360
361 public String getSelectedFuncao() {
362 return selectedFuncao;
363 }
364
365
366
367
368
369
370
371
372 public void setSelectedFuncao(String selectedFuncao) {
373 this.selectedFuncao = selectedFuncao;
374 }
375
376
377
378
379
380
381
382
383
384 public UsuarioUsu getUsuario() {
385 return usuario;
386 }
387
388
389
390
391
392
393
394
395
396 public void setUsuario(UsuarioUsu usuario) {
397 this.usuario = usuario;
398 }
399
400
401
402
403
404
405
406
407
408 public AcompReferenciaItemAri getAcompReferenciaItemSubNivel() {
409 return acompReferenciaItemSubNivel;
410 }
411
412
413
414
415
416
417
418
419
420 public void setAcompReferenciaItemSubNivel(AcompReferenciaItemAri acompReferenciaItemSubNivel) {
421 this.acompReferenciaItemSubNivel = acompReferenciaItemSubNivel;
422 }
423
424
425
426
427
428
429
430
431
432 public String getPrimeiroAcomp() {
433 return primeiroAcomp;
434 }
435
436
437
438
439
440
441
442
443
444 public void setPrimeiroAcomp(String primeiroAcomp) {
445 this.primeiroAcomp = primeiroAcomp;
446 }
447
448
449
450
451 public HttpServletRequest getRequest() {
452 return request;
453 }
454
455
456
457
458 public void setRequest(HttpServletRequest request) {
459 this.request = request;
460 }
461 }