1   
2   
3   
4   
5   package ecar.permissao;
6   
7   import java.util.ArrayList;
8   import java.util.Iterator;
9   import java.util.List;
10  import java.util.Set;
11  
12  import org.apache.log4j.Logger;
13  import org.hibernate.HibernateException;
14  import org.hibernate.Query;
15  
16  import comum.util.Pagina;
17  
18  import ecar.dao.EstruturaAcessoDao;
19  import ecar.dao.EstruturaDao;
20  import ecar.dao.ItemEstrutUsuarioDao;
21  import ecar.dao.ItemEstruturaDao;
22  import ecar.dao.TipoAcompGrpAcessoDao;
23  import ecar.dao.TipoAcompTipofuncacompSisatributoTaTpfaSatbDao;
24  import ecar.dao.TipoFuncAcompDao;
25  import ecar.exception.ECARException;
26  import ecar.login.SegurancaECAR;
27  import ecar.pojo.AcompReferenciaItemAri;
28  import ecar.pojo.EstrutTpFuncAcmpEtttfa;
29  import ecar.pojo.EstruturaAcessoEtta;
30  import ecar.pojo.EstruturaEtt;
31  import ecar.pojo.EstruturaFuncaoEttf;
32  import ecar.pojo.ItemEstrutUsuarioIettus;
33  import ecar.pojo.ItemEstruturaIett;
34  import ecar.pojo.OrgaoOrg;
35  import ecar.pojo.SisAtributoSatb;
36  import ecar.pojo.TipoAcompanhamentoTa;
37  import ecar.pojo.TipoFuncAcompTpfa;
38  import ecar.pojo.UsuarioUsu;
39  
40  
41  
42  
43  public class ValidaPermissao {
44      
45  	private Logger logger = null;
46  
47  	public static final String SIM = "S";
48      public static final String NAO = "N";
49  	
50  	public static final String EM_MONITORAMENTO = "M";
51  	public static final String PROPRIA_SECRETARIA = "P";    
52  	public static final String OUTRAS_SECRETARIAS = "O";
53  	
54  	public static final String LEITURA_ACOMP_MONITORADO_SUA_SECRETARIA = "LEITURA_ACOMP_MONITORADO_SUA_SECRETARIA";
55  	public static final String LEITURA_ACOMP_MONITORADO_OUTRA_SECRETARIA = "LEITURA_ACOMP_MONITORADO_OUTRA_SECRETARIA";
56  	public static final String LEITURA_ACOMP_SUA_SECRETARIA = "LEITURA_ACOMP_SUA_SECRETARIA";
57  	public static final String LEITURA_ACOMP_OUTRA_SECRETARIA = "LEITURA_ACOMP_OUTRA_SECRETARIA";
58  	
59  	
60  	public static final short PERMISSAO_EXCLUIR = 1;
61  	public static final short PERMISSAO_CONSULTAR = 2;  
62  	public static final short PERMISSAO_CONSULTAR_PARECER = 4;
63  
64  	
65  	public static final int PERMISSAO_TODOS_ORGAOS = 1;
66  	public static final int PERMISSAO_SEUS_ORGAOS = 2;  
67  	public static final int PERMISSAO_SUA_RESPONSABILIDADE = 3;
68  		
69  	private short PERMISSOES = 0;
70  	
71  	private boolean ignorarPermissoes = false;
72  
73  	
74  
75  
76  
77  
78  
79  
80  	public ValidaPermissao() {
81  		setIgnorarPermissoes(false);
82  
83  		logger = Logger.getLogger(this.getClass());
84  		
85  		try {
86  			Object ignorarPermissoesContext = String.valueOf("");
87  			
88  			if(ignorarPermissoesContext != null) {
89  				if("true".equals(ignorarPermissoesContext.toString())) {
90  					setIgnorarPermissoes(true);
91  				}
92  			}
93  		}
94  		catch(Exception e) {
95  			
96  			org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
97  		}
98  	}
99  	
100     
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112     public boolean permissaoExcluirItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) {
113     	try {
114 	    	if(getIgnorarPermissoes()) {
115 	    		return true;
116 	    	}
117 	    	
118 			Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
119 			Iterator it = itemUsuarios.iterator();
120 			while(it.hasNext()){
121 				ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
122 				if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
123 					if(SIM.equals(ieUsuario.getIndExcluirIettus()))
124 						return true;
125 				}
126 				if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
127 					|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
128 					&& 
129 					((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
130 					if(SIM.equals(ieUsuario.getIndExcluirIettus()))
131 						return true;				
132 				}
133 			}
134 			
135 	        return false;
136 		}
137 		catch(Exception e) {
138 			this.logger.error(e);
139 	        return false;
140 		}
141     }
142 
143     
144 
145 
146 
147 
148 
149 
150 
151 
152 
153 
154     public boolean permissaoAdicionarItem(EstruturaEtt estrutura, Set gruposUsuario) {
155     	try {
156 	    	if( ignorarPermissoes ) {
157 	    		return true;
158 	    	}
159 	    	
160 	    	for (Iterator it = estrutura.getEstruturaAcessoEttas().iterator(); it.hasNext();) {
161 				EstruturaAcessoEtta estruturaAcesso = (EstruturaAcessoEtta) it.next();
162 				if(gruposUsuario.contains(estruturaAcesso.getSisAtributoSatb())){
163 					 if(estruturaAcesso.getIndIncItemEtta() != null && SIM.equals(estruturaAcesso.getIndIncItemEtta())){
164 						  return true;				
165 					 }
166 				}
167 			 }
168 			 return false;		
169 		}
170 		catch(Exception e) {
171 			this.logger.error(e);
172 	        return false;
173 		}
174     }
175 
176 
177     
178 
179 
180 
181 
182 
183 
184 
185 
186 
187 
188 
189     public Boolean permissaoAlterarItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario, EstruturaFuncaoEttf estruturaFuncaoEttf) {
190     	try {
191     		if(getIgnorarPermissoes()) {
192     			return true;
193     		}
194 
195     		Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
196     		Iterator it = itemUsuarios.iterator();
197 
198     		while(it.hasNext()){
199     			ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
200     			
201     			
202     			if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && 
203     					gruposUsuario.contains(ieUsuario.getSisAtributoSatb())) {
204     				
205     				
206     				if(SIM.equals(ieUsuario.getIndEdicaoIettus())) {
207     					
208     					
209     					if (item.getIndBloqPlanejamentoIett() == null || item.getIndBloqPlanejamentoIett().equals(NAO)) {
210     						return true;
211     					} else {
212     						if (estruturaFuncaoEttf == null || estruturaFuncaoEttf.getIndPodeBloquearEttf().equals(NAO)){
213     							return true;
214     						}
215     					}
216     				}
217     			} 
218     			
219     			if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
220     					|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO)) 
221     					&& ( (ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) 
222     						|| (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
223     				
224     				
225     				if(SIM.equals(ieUsuario.getIndEdicaoIettus())) {
226     					if (item.getIndBloqPlanejamentoIett() == null || 
227     							NAO.equals(item.getIndBloqPlanejamentoIett())) {
228     						return true;
229     					} else {
230     						if (estruturaFuncaoEttf == null || estruturaFuncaoEttf.getIndPodeBloquearEttf().equals(NAO)){
231     							return true;
232     						}
233     					}
234     				}
235     			}
236     		}
237     		
238     		
239     		
240     		if (estruturaFuncaoEttf!=null &&  ( item.getIndBloqPlanejamentoIett() != null || SIM.equals(item.getIndBloqPlanejamentoIett()  ) ) ) {
241     			
242     			
243 				Iterator itLiberadoParaTpfa =  estruturaFuncaoEttf.getLibTipoFuncAcompTpfas().iterator();
244 			
245 				
246 				List listTipoFuncaoUsuario = (new TipoFuncAcompDao(null)).getFuncoesAcompNaEstruturaDoUsuario(item, usuario, gruposUsuario);
247 		
248 				while (itLiberadoParaTpfa.hasNext()){
249 					TipoFuncAcompTpfa liberadoParaTpfa = (TipoFuncAcompTpfa) itLiberadoParaTpfa.next();
250 
251 					if (listTipoFuncaoUsuario!= null &&  listTipoFuncaoUsuario.contains(liberadoParaTpfa)){
252 						return true;
253 					}
254 				}
255     		}
256     		
257     		return false;
258     	}
259     	catch(Exception e) {
260     		this.logger.error(e);
261     		return false;
262     	}
263     }
264     
265     
266 
267 
268 
269 
270 
271 
272 
273 
274 
275 
276 
277 
278     public boolean permissaoConsultarItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) {
279     	try {
280 	    	if(getIgnorarPermissoes()) {
281 	    		return true;
282 	    	}
283 	    	
284 			Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
285 	    	
286 	    	if(itemUsuarios == null) {
287 	    		return true;
288 	    	}
289 	
290 	    	Iterator it = itemUsuarios.iterator();
291 			while(it.hasNext()){
292 				ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
293 				if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
294 					if(ieUsuario.getIndLeituraIettus().equals(SIM))
295 						return true;
296 				}
297 				if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
298 						|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))				
299 						&& 
300 						((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
301 					if(ieUsuario.getIndLeituraIettus().equals(SIM))
302 						return true;				
303 				}
304 			}
305 	        return false;
306     	}
307     	catch(Exception e) {
308 			this.logger.error(e);
309 	        return false;
310     	}
311     }
312     
313     
314 
315 
316 
317 
318 
319 
320 
321 
322 
323 
324 
325 
326 
327     public boolean permissaoAtivarMonitoramentoItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) {
328     	try {
329 	    	if(getIgnorarPermissoes()) {
330 	    		return true;
331 	    	}
332 	    	
333 			Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
334 			if(itemUsuarios != null){
335 				Iterator it = itemUsuarios.iterator();
336 				while(it.hasNext()){
337 					ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
338 					if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
339 						if(ieUsuario.getIndAtivMonitIettus().equals(SIM) && (item.getIndMonitoramentoIett() == null || item.getIndMonitoramentoIett().equals(NAO)))
340 							return true;
341 					}
342 					if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
343 							|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
344 							&& 
345 							((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
346 						if(ieUsuario.getIndAtivMonitIettus().equals(SIM) && (item.getIndMonitoramentoIett() == null || item.getIndMonitoramentoIett().equals(NAO)))
347 							return true;				
348 					}
349 				}			
350 			}
351 	        return false;       				        
352     	}
353     	catch(Exception e) {
354 			this.logger.error(e);
355 	        return false;
356     	}
357     }
358     
359 
360     
361 
362 
363 
364 
365 
366 
367 
368 
369 
370 
371 
372 
373 
374     public boolean permissaoDesativarMonitoramentoItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) {
375     	try {
376 	    	if(getIgnorarPermissoes()) {
377 	    		return true;
378 	    	}
379 	    	
380 			Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
381 			Iterator it = itemUsuarios.iterator();
382 			while(it.hasNext()){
383 				ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
384 				if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
385 					if(ieUsuario.getIndDesatMonitIettus().equals(SIM) && (item.getIndMonitoramentoIett() != null && item.getIndMonitoramentoIett().equals(SIM)))
386 						return true;
387 				}
388 				if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
389 						|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
390 						&& 
391 						((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
392 					if(ieUsuario.getIndDesatMonitIettus().equals(SIM) && (item.getIndMonitoramentoIett() != null && item.getIndMonitoramentoIett().equals(SIM)))
393 						return true;				
394 				}
395 			}       		
396 	        return false;
397     	}
398     	catch(Exception e) {
399 			this.logger.error(e);
400 	        return false;
401     	}
402     }
403 
404 
405     
406 
407 
408 
409 
410 
411 
412 
413 
414 
415 
416 
417 
418 
419     public boolean permissaoBloquearPlanejamentoItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) {
420     	try {
421 	    	if(getIgnorarPermissoes()) {
422 	    		return true;
423 	    	}
424 	    	
425 			Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
426 			if(itemUsuarios != null){
427 				Iterator it = itemUsuarios.iterator();
428 				while(it.hasNext()){
429 					ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
430 					if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
431 						if(ieUsuario.getIndBloqPlanIettus().equals(SIM) && (item.getIndBloqPlanejamentoIett() == null || item.getIndBloqPlanejamentoIett().equals(NAO)))
432 							return true;
433 					}
434 					if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
435 							|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
436 							&& 
437 							((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
438 						if(ieUsuario.getIndBloqPlanIettus().equals(SIM) && (item.getIndBloqPlanejamentoIett() == null || item.getIndBloqPlanejamentoIett().equals(NAO)))
439 							return true;				
440 					}
441 				}	
442 			}		       		        				
443 	        return false;
444     	}
445     	catch(Exception e) {
446 			this.logger.error(e);
447 	        return false;
448     	}
449     }
450 
451     
452 
453 
454 
455 
456 
457 
458 
459 
460 
461 
462 
463 
464 
465     public boolean permissaoLiberarPlanejamentoItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) {
466     	try {
467 	    	if(getIgnorarPermissoes()) {
468 	    		return true;
469 	    	}
470 	    	
471 			Set itemUsuarios = item.getItemEstrutUsuarioIettusesByCodIett();
472 			Iterator it = itemUsuarios.iterator();
473 			while(it.hasNext()){
474 				ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
475 				if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
476 					if(ieUsuario.getIndDesblPlanIettus().equals(SIM) && (item.getIndBloqPlanejamentoIett() != null && item.getIndBloqPlanejamentoIett().equals(SIM)))
477 						return true;
478 				}
479 				if((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
480 						|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
481 						&& 
482 						((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
483 					if(ieUsuario.getIndDesblPlanIettus().equals(SIM) && (item.getIndBloqPlanejamentoIett() != null && item.getIndBloqPlanejamentoIett().equals(SIM)))
484 						return true;				
485 				}
486 			}       		        						
487 	        return false;
488     	}
489     	catch(Exception e) {
490 			this.logger.error(e);
491 	        return false;
492     	}
493     }
494     
495        
496     
497 
498 
499 
500 
501 
502 
503 
504 
505 
506 
507 
508 
509 
510 
511 
512 
513 
514 
515     
516 
517 
518 
519 
520 
521 
522 
523 
524 
525 
526 
527 
528 
529 
530 
531 
532 
533 
534 	
535 
536 
537 
538 
539 
540 
541 
542 
543 
544 
545 
546 
547 
548 
549 
550 
551 
552 
553     
554 
555 
556 
557 
558 
559 
560 
561 
562 
563 
564 
565 
566 
567 
568 
569 
570 
571 
572 
573     
574 
575 
576 
577 
578 
579 
580 
581 
582 
583 
584 
585 
586 
587 
588 
589 
590 
591 
592 	
593 	
594 
595 
596 
597 
598 
599 
600 
601 
602 
603 
604 
605 
606 
607 
608 
609 
610 
611 
612 
613 
614 	
615 	
616 
617 
618 
619 
620 
621 
622 
623 
624 
625 
626 
627 
628 
629 
630 
631 
632 
633 
634 
635 
636 
637 
638 
639 
640 
641 
642 
643 
644 
645 
646 
647 
648 
649 
650 
651 
652 
653 
654 
655 
656 
657 	
658 
659 
660 
661 
662 
663 
664 
665 
666 
667 
668 
669 
670 
671 
672 
673 
674 
675 
676 
677 	
678 
679 
680 
681 
682 
683 
684 
685 
686 
687 
688 
689 
690 	public boolean permissaoAcessoItemElaboracaoAcomp(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario, String tipoAcesso, TipoAcompanhamentoTa tipoAcompanhamentoTa) throws ECARException{
691     	if(getIgnorarPermissoes()) {
692     		return true;
693     	}
694     	
695     	List itensUsuario = new ItemEstrutUsuarioDao(null).getItemEstrutUsuarioItemOrigemAndEmitePosicaoAndInfAndamento(item.getCodIett());
696 		Iterator it = itensUsuario.iterator();
697 		while(it.hasNext()){
698 			ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
699 			if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
700 				return true;
701 			}
702 			if(((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO)
703 					|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
704 					&& 
705 					(ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
706 				return true;				
707 			}
708 		}
709 		
710 		if (permissaoAcessoReferencia(tipoAcompanhamentoTa, gruposUsuario)) {
711 			return true;
712 		}
713 		
714 
715 
716 
717 
718 
719 
720 
721 
722 
723 
724 
725 
726 		
727 		return false;
728 	}
729 	
730 	
731 	
732 	
733 
734 
735 
736 
737 
738 
739 
740 
741 
742 
743 
744 
745 	
746 
747 
748 
749 
750 
751 
752 
753 
754 
755 
756 
757 
758 
759 
760 
761 
762 
763 
764 
765 
766 
767 
768 
769 
770 
771 
772 
773 
774     
775 
776 
777 
778 
779 
780 
781 
782 
783 
784 
785 
786 
787 
788 
789 
790     public boolean permissaoAcessoItensFilhos(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) throws ECARException {
791     	if( ignorarPermissoes ) {
792     		return true;
793     	}
794     	
795     	try{
796     		ItemEstruturaDao itemEstruturaDao = new ItemEstruturaDao(null);
797     		EstruturaDao estruturaDao = new EstruturaDao(null);
798 
799 
800     		List estruturas = estruturaDao.getListaEstruturas(item.getEstruturaEtt());
801 	        if(estruturas != null && estruturas.size() > 0){
802 	        	ArrayList<Long> codEtt = new ArrayList<Long>();
803 	        	
804 	        	for (Iterator itEtt = estruturas.iterator(); itEtt.hasNext();) {
805 					EstruturaEtt ett = (EstruturaEtt) itEtt.next();
806 					codEtt.add(ett.getCodEtt());
807 				}
808 	        	
809 	        	StringBuilder sql = new StringBuilder(
810 	        			 "select item " +
811 			                "from ItemEstruturaIett item " +
812 			                "join item.estruturaEtt as estrutura " + 
813 							"join item.itemEstrutUsuarioIettusesByCodIett as iettus " +
814 			                "where estrutura.codEtt in (:estruturas) " +
815 			                "and ( iettus.usuarioUsu.codUsu = :usuario"	        	
816 	        	);
817 					
818 	        	ArrayList<Long> codSatb = new ArrayList<Long>();
819 				if(gruposUsuario != null && gruposUsuario.size() > 0) {
820 					sql.append( " or iettus.sisAtributoSatb.codSatb in (:grupos)" );
821 
822 					for (Iterator itSatb = gruposUsuario.iterator(); itSatb.hasNext();) {
823 						SisAtributoSatb satb = (SisAtributoSatb) itSatb.next();
824 						codSatb.add(satb.getCodSatb());
825 					}
826 				}
827 				
828 				sql.append( " ) " );
829 	
830 	            Query q = estruturaDao.getSession().createQuery(sql.toString());
831 	            
832 	            q.setParameterList("estruturas", codEtt);
833 	            q.setLong("usuario", usuario.getCodUsu().longValue());
834 	
835 	            if(gruposUsuario != null && gruposUsuario.size() > 0){
836 	            	q.setParameterList("grupos", codSatb);
837 				}
838 	    		
839 	            List itensFilhos = q.list();
840 	            
841 	            for (Iterator it = itensFilhos.iterator(); it.hasNext();) {
842 	            	ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
843 	            	
844 	            	
845 	            	if((itemEstruturaDao.getAscendentes(itemFilho)).contains(item)) {
846 	            		return true;
847 	            	}
848 	    		}
849 			}
850     	}catch(HibernateException e){
851 			this.logger.error(e);
852     		throw new ECARException("");
853     	}
854 	        
855         return false;
856     }
857 	
858 	
859 
860 
861 
862 
863 
864 
865 
866 
867 
868 
869 
870 
871 
872 	public boolean permissaoInformarRealizadoFisico(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) throws ECARException{		
873     	if(getIgnorarPermissoes()) {
874     		return true;
875     	}
876     	
877 		Set itensUsuario = item.getItemEstrutUsuarioIettusesByCodIett();
878 		if(itensUsuario != null){
879 			Iterator it = itensUsuario.iterator();
880 			while(it.hasNext()){
881 				ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
882 				if(ieUsuario.getItemEstruturaIett().equals(item) && ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
883 					if(ieUsuario.getIndInfAndamentoIettus().equals(SIM) || ieUsuario.getIndInfAndamentoIettus().equals(SIM))
884 						return true;
885 				}
886 				if(ieUsuario.getItemEstruturaIett().equals(item) 
887 						&& ((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
888 								|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
889 								&& 
890 								((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb()))))){
891 					if(ieUsuario.getIndInfAndamentoIettus().equals(SIM) || ieUsuario.getIndInfAndamentoIettus().equals(SIM))
892 						return true;				
893 				}
894 			}					
895 		}
896 		return false;
897 	}
898 	
899 	
900 
901 
902 
903 
904 
905 
906 
907 
908 
909 
910 
911 	public boolean permissaoInformarParecer(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) throws ECARException{		
912     	if(getIgnorarPermissoes()) {
913     		return true;
914     	}
915     	
916 		Set itensUsuario = item.getItemEstrutUsuarioIettusesByCodIett();
917 		if(itensUsuario != null){
918 			Iterator it = itensUsuario.iterator();
919 			while(it.hasNext()){
920 				ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
921 				if(ieUsuario.getItemEstruturaIett().equals(item) && ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_GRUPO) && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())){
922 					if(ieUsuario.getIndEmitePosIettus().equals(SIM) || ieUsuario.getIndEmitePosIettus().equals(SIM))
923 						return true;
924 				}
925 				if(ieUsuario.getItemEstruturaIett().equals(item) 
926 						&& ((ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_USUARIO) 
927 								|| ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO))
928 								&& 
929 								((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuario)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb()))))){
930 					if(ieUsuario.getIndEmitePosIettus().equals(SIM) || ieUsuario.getIndEmitePosIettus().equals(SIM))
931 						return true;				
932 				}
933 			}					
934 		}
935 		return false;
936 	}
937 	
938 	
939 
940 
941 
942 
943 
944 
945 
946 
947 
948 
949 
950 
951 
952 
953 
954 
955 
956 	public void permissoesItem(ItemEstruturaIett item, UsuarioUsu usuario, Set gruposUsuario) throws ECARException {
957 		try{
958 			PERMISSOES = 0;
959 			
960 			StringBuilder query = new StringBuilder(
961 					"select distinct itemUsuario from ItemEstrutUsuarioIettus itemUsuario" +                
962 					" where itemUsuario.itemEstruturaIett.codIett = :codIett" +
963 					" and ( itemUsuario.usuarioUsu.codUsu = :codUsu");
964 			
965 			if(gruposUsuario != null && gruposUsuario.size() > 0) 
966 				query.append( " or itemUsuario.sisAtributoSatb.codSatb in (:grupos)" ) ;
967 			
968 			query.append(" )" );
969 			
970 			Query q = new ItemEstrutUsuarioDao(null).getSession().createQuery(query.toString());   
971 	    	q.setLong("codIett", item.getCodIett().longValue());
972 	        q.setLong("codUsu", usuario.getCodUsu().longValue());
973 	        
974 	        ArrayList<Long> codSatb = new ArrayList<Long>();
975 	        if(gruposUsuario != null && gruposUsuario.size() > 0){
976 	        	
977 	        	for (Iterator itSatb = gruposUsuario.iterator(); itSatb.hasNext();) {
978 					codSatb.add( ((SisAtributoSatb)itSatb.next()).getCodSatb() );
979 				}
980 	        	q.setParameterList("grupos", codSatb);
981 	        }
982 			
983 			List lista = q.list();
984 			
985 			for (Iterator it = lista.iterator(); it.hasNext();) {
986 				ItemEstrutUsuarioIettus itemUsuario = (ItemEstrutUsuarioIettus) it.next();
987 				if(SIM.equals(itemUsuario.getIndExcluirIettus())){
988 					PERMISSOES |= PERMISSAO_EXCLUIR;
989 				}
990 				if(SIM.equals(itemUsuario.getIndLeituraIettus())){
991 					PERMISSOES |= PERMISSAO_CONSULTAR;
992 				}
993 				if(SIM.equals(itemUsuario.getIndLeituraParecerIettus())){
994 					PERMISSOES |= PERMISSAO_CONSULTAR_PARECER;
995 				}
996 			}
997 		}catch(HibernateException e){
998 			this.logger.error(e);
999 			throw new ECARException(e);
1000 		}
1001     }
1002 	
1003 	
1004 
1005 
1006 
1007 
1008 
1009 
1010 
1011 
1012 
1013 
1014 
1015 
1016 
1017 
1018 	public boolean permissaoConsultarItem() {
1019     	if( ignorarPermissoes ) {
1020     		return true;
1021     	}
1022     	
1023 		if((PERMISSOES & PERMISSAO_CONSULTAR) == PERMISSAO_CONSULTAR)
1024 			return true;
1025 		
1026         return false;
1027     }
1028 	
1029 	public boolean permissaoConsultarParecerItem() {
1030     	if( ignorarPermissoes ) {
1031     		return true;
1032     	}
1033     	
1034 		if((PERMISSOES & PERMISSAO_CONSULTAR_PARECER) == PERMISSAO_CONSULTAR_PARECER)
1035 			return true;
1036 		
1037         return false;
1038     }
1039 	
1040 	
1041 	
1042 
1043 
1044 
1045 
1046 
1047 
1048 
1049 
1050 
1051 
1052 
1053 
1054 
1055 
1056 
1057 	public boolean permissaoExcluirItem() {
1058     	if( ignorarPermissoes ) {
1059     		return true;
1060     	}
1061     	
1062 		if((PERMISSOES & PERMISSAO_EXCLUIR) == PERMISSAO_EXCLUIR)
1063 			return true;
1064 		
1065         return false;
1066     }
1067 
1068 	
1069     
1070 
1071 
1072 
1073 
1074 
1075 
1076 
1077 
1078 
1079 
1080 
1081 	public boolean permissaoLeituraAcompanhamento(AcompReferenciaItemAri ari, UsuarioUsu usuarioUsu, Set gruposUsuario) throws ECARException{
1082 		
1083 		
1084 		try {
1085 	    	if(getIgnorarPermissoes()) {
1086 	    		return true;
1087 	    	}
1088 	    	
1089 			
1090 			String indItemMonitoradosAri = ari.getIndItemMonitoradosAri();
1091 			
1092 			
1093 			
1094 			
1095 			
1096 				
1097 			
1098 			
1099 
1100 			
1101 			
1102 			
1103 			
1104 			
1105 			if("S".equals(indItemMonitoradosAri) 
1106 					
1107 					){
1108 				Set itensUsuario = ari.getItemEstruturaIett().getItemEstrutUsuarioIettusesByCodIett();
1109 				Iterator it = itensUsuario.iterator();
1110 				while(it.hasNext()){
1111 					ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
1112 	
1113 					if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO)
1114 							&& 
1115 							((ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(usuarioUsu)) || (ieUsuario.getSisAtributoSatb() != null && gruposUsuario.contains(ieUsuario.getSisAtributoSatb())))){
1116 							
1117 						return true;
1118 					}
1119 					
1120 					
1121 					
1122 					if ((usuarioUsu.equals(ieUsuario.getUsuarioUsu()) || gruposUsuario.contains(ieUsuario.getSisAtributoSatb())) 
1123 							&& "S".equals(ieUsuario.getIndLeituraParecerIettus())){
1124 						
1125 						return true;
1126 					}
1127 				}
1128 			}
1129 			
1130 			
1131 			if (permissaoAcessoReferencia(ari.getAcompReferenciaAref().getTipoAcompanhamentoTa(), gruposUsuario)){
1132 				return true;
1133 			}
1134 
1135 			
1136 			
1137 			
1138 			
1139 			
1140 			
1141 			
1142 			
1143 			
1144 			 
1145 			
1146 			
1147 			
1148 			
1149 
1150 
1151 
1152 
1153 
1154 
1155 			
1156 			
1157 			
1158 			
1159 			
1160 			
1161 			
1162 			
1163 			
1164 			
1165 			
1166 			
1167 			
1168 			
1169 			
1170 
1171 
1172 
1173 
1174 
1175 
1176 			
1177 		}
1178 		catch(Exception e) {
1179 			this.logger.error(e);
1180 			throw new ECARException(e);
1181 		}
1182 
1183 		return false;
1184 	}
1185 
1186     
1187 
1188 
1189 
1190 
1191 
1192 
1193 
1194 
1195 
1196 
1197 
1198     
1199     
1200     
1201     
1202     
1203     
1204     
1205 
1206     
1207 
1208 
1209 
1210 
1211 
1212 
1213 
1214 
1215 
1216 
1217 
1218 
1219 
1220 
1221 
1222 
1223 
1224 
1225 
1226     
1227 
1228 
1229 
1230 
1231 
1232 
1233 
1234 
1235 
1236 
1237 
1238 
1239 
1240 
1241 
1242 
1243 
1244 
1245 
1246     
1247 
1248 
1249 
1250 
1251 
1252 
1253 
1254 
1255 
1256 
1257 
1258 
1259 
1260 
1261 
1262 
1263 
1264 
1265 
1266     
1267 
1268 
1269 
1270 
1271 
1272 
1273 
1274 	public boolean getIgnorarPermissoes() {
1275 		return ignorarPermissoes;
1276 	}
1277 
1278 	
1279 
1280 
1281 
1282 
1283 
1284 
1285 
1286 	private void setIgnorarPermissoes(boolean ignorarPermissoes) {
1287 		this.ignorarPermissoes = ignorarPermissoes;
1288 	}
1289 	
1290 
1291 	
1292 
1293 
1294 
1295 
1296 
1297 
1298 	public boolean permissaoConsultaIETT(Long codIett, SegurancaECAR seguranca) throws ECARException {
1299 		
1300 		try{
1301 			StringBuilder query = new StringBuilder(
1302 					"select distinct itemUsuario from ItemEstrutUsuarioIettus itemUsuario" +                
1303 					" where itemUsuario.itemEstruturaIett.codIett = :codIett" +
1304 					" and ( itemUsuario.usuarioUsu.codUsu = :codUsu"
1305 													);
1306 			
1307 			if( seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) 
1308 				query.append( " or itemUsuario.sisAtributoSatb.codSatb in (:grupos)" ) ;
1309 			
1310 			query.append(" )" );
1311 			
1312 			Query q = new ItemEstrutUsuarioDao(null).getSession().createQuery(query.toString());   
1313 	    	q.setLong("codIett", codIett);
1314 	        q.setLong("codUsu", seguranca.getCodUsu());
1315 	        
1316 	        ArrayList<Long> codSatb = new ArrayList<Long>();
1317 	        if(seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) {
1318 	        	
1319 	        	for (Iterator itSatb = seguranca.getGruposAcesso().iterator(); itSatb.hasNext();) {
1320 					codSatb.add( ((SisAtributoSatb)itSatb.next()).getCodSatb() );
1321 				}
1322 	        	q.setParameterList("grupos", codSatb);
1323 	        }
1324 			
1325 			if(q.list().iterator().hasNext())
1326 				return true;
1327 
1328 			return false;
1329 			
1330 		}catch(HibernateException e){
1331 			this.logger.error(e);
1332 			throw new ECARException(e);
1333 		}		
1334 	}
1335 	public boolean permissaoConsultaParecerIETT(Long codIett, SegurancaECAR seguranca) throws ECARException {
1336 		
1337 		try{
1338 			StringBuilder query = new StringBuilder(
1339 					"select distinct itemUsuario from ItemEstrutUsuarioIettus itemUsuario" +                
1340 					" where itemUsuario.itemEstruturaIett.codIett = :codIett" +
1341 					" and itemUsuario.indLeituraParecerIettus = :indLeituraParecerIettus" +
1342 					" and ( itemUsuario.usuarioUsu.codUsu = :codUsu"
1343 					);
1344 			
1345 			if( seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) 
1346 				query.append( " or itemUsuario.sisAtributoSatb.codSatb in (:grupos)" ) ;
1347 			
1348 			query.append(" )" );
1349 			
1350 			Query q = new ItemEstrutUsuarioDao(null).getSession().createQuery(query.toString());   
1351 	    	q.setLong("codIett", codIett);
1352 	        q.setLong("codUsu", seguranca.getCodUsu());
1353 	        q.setString("indLeituraParecerIettus", Pagina.SIM);
1354 	        
1355 	        ArrayList<Long> codSatb = new ArrayList<Long>();
1356 	        if(seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) {
1357 	        	
1358 	        	for (Iterator itSatb = seguranca.getGruposAcesso().iterator(); itSatb.hasNext();) {
1359 					codSatb.add( ((SisAtributoSatb)itSatb.next()).getCodSatb() );
1360 				}
1361 	        	q.setParameterList("grupos", codSatb);
1362 	        }
1363 			
1364 			return q.list().iterator().hasNext();
1365 			
1366 		}catch(HibernateException e){
1367 			this.logger.error(e);
1368 			throw new ECARException(e);
1369 		}		
1370 	}	
1371 	
1372 	public boolean permissaoConsultaParecerIETTGrupos(Long codIett, Long codTpfa, Long codTa, SegurancaECAR seguranca) throws ECARException {
1373 		boolean permissao = false;
1374 		try{
1375 			StringBuilder query = new StringBuilder(
1376 					"select distinct itemUsuario from ItemEstrutUsuarioIettus itemUsuario" +                
1377 					" where itemUsuario.itemEstruturaIett.codIett = :codIett" +
1378 					" and itemUsuario.indLeituraParecerIettus = :indLeituraParecerIettus" +
1379 					" and ( itemUsuario.usuarioUsu.codUsu = :codUsu"
1380 					);
1381 			
1382 			if( seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) 
1383 				query.append( " or itemUsuario.sisAtributoSatb.codSatb in (:grupos)" ) ;
1384 			
1385 			query.append(" )" );
1386 			
1387 			Query q = new ItemEstrutUsuarioDao(null).getSession().createQuery(query.toString());   
1388 	    	q.setLong("codIett", codIett);
1389 	        q.setLong("codUsu", seguranca.getCodUsu());
1390 	        q.setString("indLeituraParecerIettus", Pagina.SIM);
1391 	        
1392 	        ArrayList<Long> codSatb = new ArrayList<Long>();
1393 	        if(seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) {
1394 	        	
1395 	        	for (Iterator itSatb = seguranca.getGruposAcesso().iterator(); itSatb.hasNext();) {
1396 					codSatb.add( ((SisAtributoSatb)itSatb.next()).getCodSatb() );
1397 				}
1398 	        	q.setParameterList("grupos", codSatb);
1399 	        }
1400 			
1401 			permissao = q.list().iterator().hasNext();
1402 			
1403 			
1404 			StringBuilder queryGrupos = new StringBuilder(
1405 					"select distinct taTpfaSatb from TipoAcompTipofuncacompSisatributoTaTpfaSatb taTpfaSatb" +                
1406 					" where taTpfaSatb.tipoFuncAcompTpfa.codTpfa = :codTpfa" +
1407 					" and taTpfaSatb.tipoAcompanhamentoTa.codTa = :codTa" +
1408 					" and taTpfaSatb.indLeituraParecer = :indLeituraParecer"
1409 					);
1410 			
1411 			if( seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0) 
1412 				queryGrupos.append(" and taTpfaSatb.sisAtributoSatb.codSatb in (:grupos)" ) ;
1413 			
1414 			Query qGrupo = new ItemEstrutUsuarioDao(null).getSession().createQuery(queryGrupos.toString());   
1415 	    	qGrupo.setLong("codTpfa", codTpfa);
1416 	    	
1417 	    	if( seguranca.getGruposAcesso() != null && seguranca.getGruposAcesso().size() > 0)
1418 	    		qGrupo.setLong("codTa", codTa);
1419 	    	
1420 	    	qGrupo.setString("indLeituraParecer", Pagina.SIM);
1421 	    	
1422 	        qGrupo.setParameterList("grupos", codSatb);
1423 	        
1424 			
1425 			return permissao || qGrupo.list().iterator().hasNext();			
1426 			
1427 		}catch(HibernateException e){
1428 			this.logger.error(e);
1429 			throw new ECARException(e);
1430 		}		
1431 	}	
1432 	
1433 
1434 
1435 
1436 
1437 
1438 
1439 
1440 
1441 
1442 
1443 
1444 
1445 
1446 
1447 
1448 
1449 
1450 
1451 
1452 
1453 
1454 
1455 
1456 
1457 
1458 
1459 
1460 
1461 
1462 
1463 
1464 
1465 
1466 
1467 
1468 
1469 
1470 
1471 
1472 
1473 
1474 
1475 
1476 
1477 
1478 
1479 
1480 	
1481 	
1482 	
1483 
1484 
1485 
1486 
1487 
1488 	public boolean permissaoAcessoSecretariasUsuario(Set gruposUsuario, int tipoAcesso){
1489 		
1490 		if(this.getIgnorarPermissoes())
1491 			return true;
1492 		else
1493 			return new TipoAcompGrpAcessoDao().permissaoAcessoSecretariasUsuario(gruposUsuario, tipoAcesso); 
1494 	}
1495 	
1496 	
1497 
1498 
1499 
1500 
1501 
1502 
1503 	public boolean permissaoAcessoReferencia(TipoAcompanhamentoTa tipoAcompanhamentoTa, Set gruposUsuario) throws ECARException{
1504     	if(getIgnorarPermissoes()) {
1505     		return true;
1506     	}
1507     	
1508         return new EstruturaAcessoDao(null).temPermissoesAcessoAcomp(tipoAcompanhamentoTa, gruposUsuario);
1509     }
1510 	
1511 	
1512 
1513 
1514 
1515 
1516 
1517 	public boolean permissaoAcessoReferencia(Set gruposUsuario) throws ECARException{
1518     	if(getIgnorarPermissoes()) {
1519     		return true;
1520     	}
1521     	
1522         return new EstruturaAcessoDao(null).temPermissoesAcessoAcomp(gruposUsuario);
1523     }
1524 	
1525 	
1526 	public boolean permissaoAcessoReferenciaTodosOrgaos(TipoAcompanhamentoTa tipoAcompanhamentoTa, Set gruposUsuario)throws ECARException{
1527     	if(getIgnorarPermissoes()) {
1528     		return true;
1529     	}
1530     	
1531         return new EstruturaAcessoDao(null).temPermissoesAcessoAcompTodosOrgaos(tipoAcompanhamentoTa, gruposUsuario);
1532 	}
1533 	
1534 	
1535 	public boolean permissaoAcessoReferenciaSeusOrgaos(TipoAcompanhamentoTa tipoAcompanhamentoTa, Set gruposUsuario)throws ECARException{
1536     	if(getIgnorarPermissoes()) {
1537     		return true;
1538     	}
1539     	
1540         return new EstruturaAcessoDao(null).temPermissoesAcessoAcompSeusOrgaos(tipoAcompanhamentoTa, gruposUsuario);
1541 	}
1542 	
1543 	
1544 	public boolean permissaoAcessoReferenciaOrgaosSuaResponsabilidade(TipoAcompanhamentoTa tipoAcompanhamentoTa, Set gruposUsuario)throws ECARException{
1545     	if(getIgnorarPermissoes()) {
1546     		return true;
1547     	}
1548     	
1549     	return new EstruturaAcessoDao(null).temPermissoesAcessoAcompOrgaosSuaResponsabilidade(tipoAcompanhamentoTa, gruposUsuario);
1550 	}
1551 	
1552 	
1553 
1554 
1555 
1556 
1557 
1558     public List permissaoVisualizarPareceres(TipoAcompanhamentoTa tipoAcompanhamentoTa, Set gruposAcessoSatb){
1559 		List retorno = new ArrayList();
1560 	    
1561 		try {
1562 			TipoAcompTipofuncacompSisatributoTaTpfaSatbDao taTpfaSatbDao = new TipoAcompTipofuncacompSisatributoTaTpfaSatbDao();
1563 			retorno = taTpfaSatbDao.pesquisarPermissaoVisualizarParecerTipoFuncaoAcompTpfa(tipoAcompanhamentoTa, gruposAcessoSatb);
1564 		} catch (ECARException e) {
1565 			
1566 		}
1567 		
1568 		return retorno;
1569   }	
1570 
1571 }