View Javadoc

1   /*
2    * Criado em 11/03/2008
3    *
4    */
5   package ecar.taglib.util;
6   
7   import java.util.Collection;
8   import java.util.Iterator;
9   
10  import javax.servlet.jsp.JspException;
11  import javax.servlet.jsp.JspWriter;
12  import javax.servlet.jsp.PageContext;
13  import javax.servlet.jsp.tagext.Tag;
14  
15  import org.apache.log4j.Logger;
16  
17  import comum.util.Util;
18  
19  import ecar.dao.SisGrupoAtributoDao;
20  import ecar.pojo.ObjetoDemanda;
21  import ecar.pojo.SisAtributoSatb;
22  import ecar.pojo.SisGrupoAtributoSga;
23  
24  /**
25   * Taglib para gerar as rotinas de validação dos campos da tela de Demandas.<br>
26   * Permite validações específicas para cada campo que devem ser implementadas nos métodos geraValidacao<br>
27   * 
28   * @author 
29   */
30  public class ValidacaoRegDemandaTag implements Tag{
31      private Collection atributos;
32  
33      //private Collection sisGrupoAtributoSgaObrigatorio;
34      
35      private PageContext page = null;
36      
37      private StringBuffer validacaoCampos;
38      
39      private StringBuffer retornoPesquisa;
40      
41      private SisGrupoAtributoDao sisGrupoAtributoDao= null;
42      
43      private String acao;
44      
45      private Boolean telaFiltro = null;
46         
47  
48  	/**
49       * Inicializa a montagem da tag para ser adicionada na tela de HTML.<br>
50       * 
51       * @author N/C
52  	 * @since N/C
53  	 * @version N/C
54  	 * @return int
55  	 * @throws JspException
56       */
57      public int doStartTag() throws JspException {
58          try{
59              JspWriter writer = this.page.getOut();
60              StringBuffer s = new StringBuffer();
61              validacaoCampos = new StringBuffer();
62              retornoPesquisa = new StringBuffer();
63              
64              telaFiltro = "filtrarClassificar".equals(acao) || "filtrarCadastro".equals(acao) ? true:false;
65              
66              //Gera a validação dos campos que devem existir em Classifica Demanda
67  //            if(acao.equals("classificar"))
68  //            	geraValidacaoExistenciaCamposClassificaDemanda();            
69              	
70              if(atributos != null){
71                  Iterator it = atributos.iterator();
72                  while(it.hasNext()){
73                      ObjetoDemanda objetoDemanda = (ObjetoDemanda) it.next();
74                      if(objetoDemanda.iGetGrupoAtributosLivres() != null){
75                      	geraValidacaoAtributoLivre(objetoDemanda);
76                  	}
77                      else {
78                      	try {
79  	                        this.getClass().
80  	                        	getMethod("geraValidacao" + Util.primeiraLetraToUpperCase(objetoDemanda.iGetNome()), new Class[] { ObjetoDemanda.class }).
81  	                        		invoke(this, new Object[] { objetoDemanda });	                        	                        
82                      	}
83                      	catch(Exception e) {
84                          	Logger logger = Logger.getLogger(this.getClass());
85                          	logger.error(e);
86                      	}
87                      }
88                  }
89                  
90                  
91              }
92              s.append("function validar(form) { \n");
93              if(validacaoCampos != null)
94                  s.append(validacaoCampos);
95  //            if(this.getSisGrupoAtributoSgaObrigatorio() != null && !this.getSisGrupoAtributoSgaObrigatorio().isEmpty()) {
96  //            	s.append(new ecar.dao.SisGrupoAtributoDao(null).getValidacoesAtributos(new ArrayList(this.getSisGrupoAtributoSgaObrigatorio())));
97  //            }
98              s.append( "return true;\n");
99              s.append("}\n");
100             if(retornoPesquisa != null)
101                 s.append(retornoPesquisa);
102             writer.print(s.toString());
103         } catch(Exception e){
104         	Logger logger = Logger.getLogger(this.getClass());
105         	logger.error(e);
106         }
107         return Tag.EVAL_BODY_INCLUDE;
108     }
109 
110     
111     /**
112      * Gera validação DescricaoRegd.<br>
113      * 
114      * @author N/C
115 	 * @since N/C
116 	 * @version N/C
117      * @param ObjetoDemanda objetoDemanda
118      */
119     public void geraValidacaoDescricaoRegd(ObjetoDemanda objetoDemanda) {
120         if(objetoDemanda.iGetObrigatorio().booleanValue() == true 
121         		&& (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar") ) ){
122             geraValidacaoCampoObrigatorio(objetoDemanda);
123         }
124     }
125     
126     /**
127      * Gera validação de DataLimiteRegd.<br>
128      * 
129      * @author N/C
130 	 * @since N/C
131 	 * @version N/C
132      * @param ObjetoDemanda objetoDemanda
133      */
134     public void geraValidacaoDataLimiteRegd(ObjetoDemanda objetoDemanda) {
135         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
136         		&& (acao.equals("alterar") || acao.equals("incluir")) ){
137             geraValidacaoCampoObrigatorio(objetoDemanda);
138             
139         }
140         
141         if (!acao.equals("classificar")){ 
142         	geraValidacaoData(objetoDemanda);
143         } else {  //Em Classificar Demanda o campo será necessariamente obrigatorio [Thaise 22/04/2008]
144         	geraValidacaoCampoObrigatorio(objetoDemanda);
145         	geraValidacaoData(objetoDemanda);
146         }
147     }
148     
149     /**
150      * Gera validação OrgaoOrg.<br>
151      * 
152      * @author N/C
153 	 * @since N/C
154 	 * @version N/C
155      * @param ObjetoDemanda objetoDemanda
156      */
157     public void geraValidacaoOrgaoOrg(ObjetoDemanda objetoDemanda) {
158         if(objetoDemanda.iGetObrigatorio().booleanValue() == true 
159         		&& (acao.equals("alterar") || acao.equals("incluir") ) ){
160             geraValidacaoCampoObrigatorio(objetoDemanda);  
161     	} 
162         //Em Classificar Demanda o campo será necessariamente obrigatorio [Thaise 22/04/2008]
163         else if (acao.equals("classificar")){
164         	geraValidacaoCampoObrigatorio(objetoDemanda);
165         }
166     }
167     
168     
169     /**
170      * Gera validação SitDemandaSitd.<br>
171      * 
172      * @author N/C
173 	 * @since N/C
174 	 * @version N/C
175      * @param ObjetoDemanda objetoDemanda
176      */
177     public void geraValidacaoSitDemandaSitd(ObjetoDemanda objetoDemanda) {
178 //        if(objetoDemanda.iGetObrigatorio().booleanValue() == true && acao.equals("classificar")){
179 
180     	//Em Classificar Demanda o campo será necessariamente obrigatorio [Thaise 22/04/2008]
181     	//foi comentada a linha a cima
182     	if (acao.equals("classificar")){
183         	geraValidacaoCampoObrigatorio(objetoDemanda);                    
184         }
185     }
186     
187     
188     /**
189      * Gera validação PrioridadePrior.<br>
190      * 
191      * @author N/C
192 	 * @since N/C
193 	 * @version N/C
194      * @param ObjetoDemanda objetoDemanda
195      */
196     public void geraValidacaoPrioridadePrior(ObjetoDemanda objetoDemanda) {
197         //if(objetoDemanda.iGetObrigatorio().booleanValue() == true && acao.equals("classificar")){
198     	//Em Classificar Demanda o campo será necessariamente obrigatorio [Thaise 22/04/2008]
199     	//foi comentada a linha a cima
200     	if (acao.equals("classificar")){
201         	geraValidacaoCampoObrigatorio(objetoDemanda);  
202         }
203     }
204     
205     /**
206      * Gera validação IndAtivoRegd.<br>
207      * 
208      * @author N/C
209 	 * @since N/C
210 	 * @version N/C
211      * @param ObjetoDemanda objetoDemanda
212      */
213     public void geraValidacaoIndAtivoRegd(ObjetoDemanda objetoDemanda) {
214         if(objetoDemanda.iGetObrigatorio().booleanValue() == true 
215         		&& (acao.equals("alterar") || acao.equals("incluir")) ){
216             geraValidacaoCampoObrigatorio(objetoDemanda);
217         }
218     }
219     
220     /**
221      * Gera validação NumeroDocOrigemRegd.<br>
222      * 
223      * @author N/C
224 	 * @since N/C
225 	 * @version N/C
226      * @param ObjetoDemanda objetoDemanda
227      */
228     public void geraValidacaoNumeroDocOrigemRegd(ObjetoDemanda objetoDemanda) {
229         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
230         		&& (acao.equals("alterar") || acao.equals("incluir")) ){
231             geraValidacaoCampoObrigatorio(objetoDemanda);
232             
233         }
234         if (!acao.equals("classificar")){
235         	geraValidacaoNumeroDecimal(objetoDemanda);
236         }
237     }
238     
239     /**
240      * Gera validação NumeroDocOrigemRegd.<br>
241      * 
242      * @author N/C
243 	 * @since N/C
244 	 * @version N/C
245      * @param ObjetoDemanda objetoDemanda
246      */
247     public void geraValidacaoRegDemandaRegd(ObjetoDemanda objetoDemanda) {
248         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
249         		&& (acao.equals("alterar") || acao.equals("incluir")) ){
250             geraValidacaoCampoObrigatorio(objetoDemanda);
251         }
252     }
253     
254     /**
255      * Gera validação NomeSolicitanteRegd.<br>
256      * 
257      * @author N/C
258 	 * @since N/C
259 	 * @version N/C
260      * @param ObjetoDemanda objetoDemanda
261      */
262     public void geraValidacaoNomeSolicitanteRegd(ObjetoDemanda objetoDemanda) {
263         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
264         		&& (acao.equals("alterar") || acao.equals("incluir")) || acao.equals("classificar") ){
265             geraValidacaoCampoObrigatorio(objetoDemanda);
266         }
267     }
268     
269     /**
270      * Gera validação DataSolicitacaoRegd.<br>
271      * 
272      * @author N/C
273 	 * @since N/C
274 	 * @version N/C
275      * @param ObjetoDemanda objetoDemanda
276      */
277     public void geraValidacaoDataSolicitacaoRegd(ObjetoDemanda objetoDemanda) {
278         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
279         		&& (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar")) ){
280         	geraValidacaoCampoObrigatorio(objetoDemanda);
281         }            
282        
283        geraValidacaoData(objetoDemanda);
284        
285     }
286     
287     /**
288      * Gera validação ObservacaoRegd.<br>
289      * 
290      * @author N/C
291 	 * @since N/C
292 	 * @version N/C
293      * @param ObjetoDemanda objetoDemanda
294      */
295     public void geraValidacaoObservacaoRegd(ObjetoDemanda objetoDemanda) {
296         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
297         		&& (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar")) ){
298             geraValidacaoCampoObrigatorio(objetoDemanda);
299         }
300     }
301     
302     /**
303      * Gera validação EntidadeOrgaoDemandaEntorgds.<br>
304      * 
305      * @author N/C
306 	 * @since N/C
307 	 * @version N/C
308      * @param ObjetoDemanda objetoDemanda
309      */
310     public void geraValidacaoEntidadeOrgaoDemandaEntorgds(ObjetoDemanda objetoDemanda) {
311         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
312         		&& (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar") ) ){
313         	geraValidacaoCampoObrigatorioOrgaoSolucinadorCheck(objetoDemanda);
314         }
315     }
316     
317     
318     /**
319      * Gera validação EntidadeDemandaEntds.<br>
320      * 
321      * @author N/C
322 	 * @since N/C
323 	 * @version N/C
324      * @param ObjetoDemanda objetoDemanda
325      */
326     public void geraValidacaoEntidadeDemandaEntds(ObjetoDemanda objetoDemanda) {
327         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
328         		&& (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar") ) ){
329         	geraValidacaoCampoObrigatorioEntidadesCheck(objetoDemanda);
330         }
331     }
332     
333     /**
334      * Gera validação LocalDemandaLdems.<br>
335      * 
336      * @author N/C
337 	 * @since N/C
338 	 * @version N/C
339      * @param ObjetoDemanda objetoDemanda
340      */
341     public void geraValidacaoLocalDemandaLdems(ObjetoDemanda objetoDemanda) {
342         if(objetoDemanda.iGetObrigatorio().booleanValue() == true
343         		&& (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar")) ){
344         	geraValidacaoCampoObrigatorioLocaisCheck(objetoDemanda);
345         }
346     }
347   
348      /**
349      * Gera validação campo obrigatorio.<br>
350      * 
351      * @author N/C
352 	 * @since N/C
353 	 * @version N/C
354      * @param ObjetoDemanda objetoDemanda
355      */
356     private void geraValidacaoCampoObrigatorio(ObjetoDemanda objetoDemanda){
357     	if (!telaFiltro){
358     		    		    		
359     		getValidacaoCampos().append( " if (document.form.").append(objetoDemanda.iGetNome()).append(".value == \"\"){\n" );
360             getValidacaoCampos().append( "  alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
361             getValidacaoCampos().append(" return false; \n");
362             getValidacaoCampos().append( " } \n");
363                 		
364     	}        
365     }
366     /**
367      * Gera validação para verificar se o campo está definido em Classifica Demanda.<br>
368      * Método temporário para obrigar a configuração do atributo "sitDemandaSitd"<br>
369      * e "prioridadePrior" no Atributo na Demanda. Com a aplicação de visões em Demanda
370      * este método passará a ser dinâmico. 
371      * @author N/C
372 	 * @since N/C
373 	 * @version N/C
374      */
375     private void geraValidacaoExistenciaCamposClassificaDemanda(){
376     	if (!telaFiltro){
377     		getValidacaoCampos().append( " if (document.form.sitDemandaSitd == null){\n" );
378             getValidacaoCampos().append("  \t alert(\"Obrigatória a configuração do Campo sitDemandaSitd");
379             getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
380             getValidacaoCampos().append(" \t return false; \n");
381             getValidacaoCampos().append( " } \n");
382 
383             getValidacaoCampos().append( " if (document.form.prioridadePrior == null){\n" );
384             getValidacaoCampos().append("  \t alert(\"Obrigatória a configuração do Campo prioridadePrior");
385             getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
386             getValidacaoCampos().append(" \t return false; \n");
387             getValidacaoCampos().append( " } \n");
388             
389     		getValidacaoCampos().append( " if (document.form.orgaoOrg == null){\n" );
390             getValidacaoCampos().append("  \t alert(\"Obrigatória a configuração do Campo orgaoOrg");
391             getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
392             getValidacaoCampos().append(" \t return false; \n");
393             getValidacaoCampos().append( " } \n");
394 
395     		getValidacaoCampos().append( " if (document.form.dataLimiteRegd == null){\n" );
396             getValidacaoCampos().append("  alert(\"Obrigatória a configuração do Campo dataLimiteRegd");
397             getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
398             getValidacaoCampos().append(" return false; \n");
399             getValidacaoCampos().append( " } \n");
400             
401             
402     	}
403         
404     }
405 
406     /**
407      * Gera validação campo obrigatorio.<br>
408      * 
409      * @author N/C
410 	 * @since N/C
411 	 * @version N/C
412      * @param ObjetoDemanda objetoDemanda
413      */
414     private void geraValidacaoCampoObrigatorioLocaisCheck(ObjetoDemanda objetoDemanda){
415     	if (!telaFiltro){
416     		
417     		// O document.form.contadorLocalReal.value foi removido porque nao estava funcionando no internet explorer
418     	    //getValidacaoCampos().append( " if (document.form.").append("contadorLocalReal").append(".value == \"0\"){\n" );
419     		getValidacaoCampos().append( " if (").append("contadorLocalReal").append("== \"0\" ||" );
420     		getValidacaoCampos().append( " (document.form.").append("contadorLocalReal").append(".value == \"0\")){\n" );
421 	        getValidacaoCampos().append( "  alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
422 	        getValidacaoCampos().append(" return false; \n");
423 	        getValidacaoCampos().append( " } \n");
424     	}
425     }
426 
427     /**
428      * Gera validação campo obrigatorio.<br>
429      * 
430      * @author N/C
431 	 * @since N/C
432 	 * @version N/C
433      * @param ObjetoDemanda objetoDemanda
434      */
435     private void geraValidacaoCampoObrigatorioEntidadesCheck(ObjetoDemanda objetoDemanda){
436     	if (!telaFiltro){
437     		// O document.form.contadorEntidadeReal.value foi removido porque nao estava funcionando no internet explorer
438 	        //getValidacaoCampos().append( " if (document.form.").append("contadorEntidadeReal").append(".value == \"0\"){\n" );
439     		getValidacaoCampos().append( " if (").append("contadorEntidadeReal").append(" == \"0\"){\n" );
440 	        getValidacaoCampos().append( "  alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
441 	        getValidacaoCampos().append(" return false; \n");
442 	        getValidacaoCampos().append( " } \n");
443 	    }
444     }
445     
446     
447     /**
448      * Gera validação campo obrigatorio.<br>
449      * 
450      * @author N/C
451 	 * @since N/C
452 	 * @version N/C
453      * @param ObjetoDemanda objetoDemanda
454      */
455     private void geraValidacaoCampoObrigatorioOrgaoSolucinadorCheck(ObjetoDemanda objetoDemanda){
456     	if (!telaFiltro){
457     		// O document.form.contadorEntidadeReal.value foi removido porque nao estava funcionando no internet explorer
458     		//  getValidacaoCampos().append( " if (document.form.").append("contadorEntidadeOrgaoReal").append(".value == \"0\"){\n" );
459             getValidacaoCampos().append( " if (").append("contadorEntidadeOrgaoReal").append(" == \"0\"){\n" );
460 	        getValidacaoCampos().append( "  alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
461 	        getValidacaoCampos().append(" return false; \n");
462 	        getValidacaoCampos().append( " } \n");
463 	    }
464     }
465     
466     /**
467      * Gera validação data.<br>
468      * 
469      * @author N/C
470 	 * @since N/C
471 	 * @version N/C
472      * @param ObjetoDemanda objetoDemanda
473      */
474     private void geraValidacaoData(ObjetoDemanda objetoDemanda){
475     	if (telaFiltro){
476 	        getValidacaoCampos().append("if(form.").append(objetoDemanda.iGetNome() + "_Inicio").append(".value != \"\" && !validaData(form.").append(objetoDemanda.iGetNome() + "_Inicio").append(",false,true,true)){\n");
477 	        getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
478 	        getValidacaoCampos().append(" return false; \n");
479 	        getValidacaoCampos().append( " } \n");
480 	        getValidacaoCampos().append("if(form.").append(objetoDemanda.iGetNome() + "_Fim").append(".value != \"\" && !validaData(form.").append(objetoDemanda.iGetNome() + "_Fim").append(",false,true,true)){\n");
481 	        getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
482 	        getValidacaoCampos().append(" return false; \n");
483 	        getValidacaoCampos().append( " } \n");
484 	        getValidacaoCampos().append("if(!DataMenor(form.").append(objetoDemanda.iGetNome() + "_Inicio").append(".value, form.").append(objetoDemanda.iGetNome() + "_Fim").append(".value)){\n");
485 	        getValidacaoCampos().append( "  alert(\"").append(objetoDemanda.iGetLabel()).append(" inicial maior que final").append("\");\n" );
486 	        getValidacaoCampos().append(" return false; \n");
487 	        getValidacaoCampos().append( " } \n");
488 	        
489     	} else {
490     		getValidacaoCampos().append("if(form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && !validaData(form.").append(objetoDemanda.iGetNome()).append(",false,true,true)){\n");
491 	        getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
492 	        getValidacaoCampos().append(" return false; \n");
493 	        getValidacaoCampos().append( " } \n");
494     	}
495 
496     }
497     
498     /**
499      * Gera validação moeda.<br>
500      * 
501      * @author N/C
502 	 * @since N/C
503 	 * @version N/C
504      * @param ObjetoDemanda objetoDemanda
505      */
506     private void geraValidacaoMoeda(ObjetoDemanda objetoDemanda){
507 	   	getValidacaoCampos().append("if(document.form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && !isValidMoeda(form.").append(objetoDemanda.iGetNome()).append(".value)){\n");
508         getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
509         getValidacaoCampos().append(" return false; \n");
510         getValidacaoCampos().append( " } \n");       
511     }
512     
513     /**
514      * Gera validação Numero Decimal.<br>
515      * 
516      * @author N/C
517 	 * @since N/C
518 	 * @version N/C
519      * @param ObjetoDemanda objetoDemanda
520      */
521     private void geraValidacaoNumeroDecimal(ObjetoDemanda objetoDemanda){
522 
523     	//Verifica o tamanho do inteiro
524     	getValidacaoCampos().append("if(document.form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && (form.").append(objetoDemanda.iGetNome()).append(".value).length > 9){\n");
525 	    getValidacaoCampos().append( "  alert(\"Valor de no máximo 9 digitos para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
526 	    getValidacaoCampos().append( "  document.form.").append(objetoDemanda.iGetNome()).append(".focus();\n" );
527 	    getValidacaoCampos().append(" return false; \n");
528 	    getValidacaoCampos().append( " } \n");
529 	    
530     	//Verifica se é um numero decimal
531     	getValidacaoCampos().append("if(document.form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && !validaDecimal(form.").append(objetoDemanda.iGetNome()).append(".value)){\n");
532 	    getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
533 	    getValidacaoCampos().append( "  document.form.").append(objetoDemanda.iGetNome()).append(".focus();\n" );
534 	    getValidacaoCampos().append(" return false; \n");
535 	    getValidacaoCampos().append( " } \n");
536     }
537     
538     /**
539      * Gera validação de atributo livre.<br>
540      * 
541      * @author N/C
542 	 * @since N/C
543 	 * @version N/C
544      * @param ObjetoDemanda objetoDemanda
545      */
546     private void geraValidacaoAtributoLivre(ObjetoDemanda objetoDemanda){
547     	if (!telaFiltro && (acao.equals("alterar") || acao.equals("incluir") 
548     			|| acao.equals("classificar") )){ //Foi adicionada a eiçao de atributos livre em Classifica Demanda[Thaise 22/04/2008]
549 	    	if(objetoDemanda.iGetObrigatorio().booleanValue() == true && 
550 	    			objetoDemanda.iGetGrupoAtributosLivres() != null && 
551 	    			objetoDemanda.iGetGrupoAtributosLivres().getSisAtributoSatbs().size() > 0){
552 	    		
553 	    		SisGrupoAtributoSga grupoAtributo = objetoDemanda.iGetGrupoAtributosLivres();
554 	
555 	    		
556 	    		if (grupoAtributo != null && grupoAtributo.getIndAtivoSga().equals("S") && 
557 	    				grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().size() > 0){
558 	    			
559 	    			getValidacaoCampos().append("/**** Iní­cio Validação Atributo Livre " + objetoDemanda.iGetNome() + " ****/");
560 	    			
561 		    		if ( sisGrupoAtributoDao==null)  {
562 		    			getValidacaoCampos().append((new SisGrupoAtributoDao(null)).getValidacaoAtributo(grupoAtributo, objetoDemanda.iGetLabel()));
563 		    		} else {
564 		    			getValidacaoCampos().append(sisGrupoAtributoDao.getValidacaoAtributo(grupoAtributo, objetoDemanda.iGetLabel()));
565 		    		}    
566 		    		
567 		    		getValidacaoCampos().append("/**** Fim Validação Atributo Livre " + objetoDemanda.iGetNome() + " ****/");
568 	    		}
569 	    	}
570     	} else if (telaFiltro){
571     		SisGrupoAtributoSga grupoAtributo = objetoDemanda.iGetGrupoAtributosLivres();
572     		if (grupoAtributo != null && grupoAtributo.getIndAtivoSga().equals("S") && 
573     				grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().size() > 0){
574 	    		if (grupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().intValue() == Input.VALIDACAO){
575 	    			if (grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().iterator().hasNext()){
576 		    			SisAtributoSatb sisAtributoSatb = (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().iterator().next();
577 		    			if (sisAtributoSatb.getAtribInfCompSatb().equals("dataScript")) {
578 		    				getValidacaoCampos().append(validacaoIntervaloDataAtributoLivre(objetoDemanda)); 
579 		    			} else if (sisAtributoSatb.getAtribInfCompSatb().equals("numeroInteiroScript") ||
580 		    					   sisAtributoSatb.getAtribInfCompSatb().equals("numeroRealScript") ||
581 		    					   sisAtributoSatb.getAtribInfCompSatb().equals("valorMonetarioScript")){
582 		    				getValidacaoCampos().append(validacaoIntervaloNumeroAtributoLivre(objetoDemanda));
583 		    			}
584 	    			}
585 	    		}
586     		}
587     	}
588     }
589        
590     /**
591      * Gera validação de atributo livre para intervalo de datas.<br>
592      * @param SisAtributoSatb sisAtributoSatb
593      * @return String
594      */
595     public String validacaoIntervaloDataAtributoLivre(ObjetoDemanda objetoDemanda){
596     	StringBuffer validacao = new StringBuffer(); 
597     	validacao.append("if(DataMenor(form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Fim").append(".value, form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Inicio").append(".value)){\n");
598     	validacao.append( "  alert(\"").append(objetoDemanda.iGetLabel()).append(" inicial maior que final").append("\");\n" );
599     	validacao.append(" return false; \n");
600     	validacao.append( " } \n");
601         return validacao.toString();
602     }
603     
604     /**
605      * Gera validação de atributo livre para intervalo de números.<br>
606      * @param SisAtributoSatb sisAtributoSatb
607      * @return String
608      */
609     public String validacaoIntervaloNumeroAtributoLivre(ObjetoDemanda objetoDemanda){
610     	StringBuffer validacao = new StringBuffer();
611     	validacao.append("if(form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Fim").append(".value < form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Inicio").append(".value){\n");
612     	validacao.append( "  alert(\"").append(objetoDemanda.iGetLabel()).append(" inicial maior que final").append("\");\n" );
613     	validacao.append(" return false; \n");
614     	validacao.append( " } \n");
615     	return validacao.toString();
616     }
617     
618     public SisGrupoAtributoDao getSisGrupoAtributoDao() {
619 		return sisGrupoAtributoDao;
620 	}
621 
622 
623 	public void setSisGrupoAtributoDao(SisGrupoAtributoDao sisGrupoAtributoDao) {
624 		this.sisGrupoAtributoDao = sisGrupoAtributoDao;
625 	}
626 
627 
628 	/**
629      * Retorna Collection atributos.<br>
630      * 
631      * @author N/C
632 	 * @since N/C
633 	 * @version N/C
634      * @return Collection - (Returns the atributos)
635      */
636     public Collection getAtributos() {
637         return atributos;
638     }
639     
640     /**
641      * Atribui valor especificado para Collection atributos.<br>
642      * 
643      * @author N/C
644 	 * @since N/C
645 	 * @version N/C
646      * @param Collection atributos - (The atributos to set)
647      */
648     public void setAtributos(Collection atributos) {
649         this.atributos = atributos;
650     }
651     
652     /**
653      * Retorna StringBuffer retornoPesquisa.<br>
654      * 
655      * @author N/C
656 	 * @since N/C
657 	 * @version N/C
658      * @return StringBuffer - (Returns the retornoPesquisa)
659      */
660     public StringBuffer getRetornoPesquisa() {
661         return retornoPesquisa;
662     }
663     
664     /**
665      * Atribui valor especificado para StringBuffer retornoPesquisa.<br>
666      * 
667      * @author N/C
668 	 * @since N/C
669 	 * @version N/C
670      * @param StringBuffer retornoPesquisa - (The retornoPesquisa to set)
671      */
672     public void setRetornoPesquisa(StringBuffer retornoPesquisa) {
673         this.retornoPesquisa = retornoPesquisa;
674     }
675     
676     /**
677      * Retorna StringBuffer validacaoCampos.<br>
678      * 
679      * @author N/C
680 	 * @since N/C
681 	 * @version N/C
682      * @return StringBuffer Returns - (the validacaoCampos)
683      */
684     public StringBuffer getValidacaoCampos() {
685         return validacaoCampos;
686     }
687     
688     /**
689      * Atribui valor especificado para StringBuffer validacaoCampos.<br>
690      * 
691      * @author N/C
692 	 * @since N/C
693 	 * @version N/C
694      * @param StringBuffer validacaoCampos - (The validacaoCampos to set)
695      */
696     public void setValidacaoCampos(StringBuffer validacaoCampos) {
697         this.validacaoCampos = validacaoCampos;
698     }
699     
700     /**
701      * Encerra Tag.<br>
702      * 
703      * @author N/C
704 	 * @since N/C
705 	 * @version N/C
706 	 * @return int
707 	 * @throws JspException
708      */
709     public int doEndTag() throws JspException {
710         return Tag.EVAL_PAGE;
711     }
712 
713     /**
714      * Atribui valor especificado para PageContext page.<br>
715      * 
716      * @author N/C
717 	 * @since N/C
718 	 * @version N/C
719 	 * @param PageContext arg0
720      */
721     public void setPageContext(PageContext arg0) {
722         this.page = arg0;
723     }
724 
725     /**
726      * 
727      * 
728      * @author N/C
729 	 * @since N/C
730 	 * @version N/C
731 	 * @param Tag arg0
732      */
733     public void setParent(Tag arg0) {
734     }
735 
736     /**
737      * Retorna Tag null.<br>
738      * 
739      * @author N/C
740 	 * @since N/C
741 	 * @version N/C
742 	 * @rreturn Tag
743      */
744     public Tag getParent() {
745         return null;
746     }
747 
748     /**
749      * Retorna PageContext page.<br>
750      * 
751      * @author N/C
752 	 * @since N/C
753 	 * @version N/C
754      * @return PageContext - (Returns the page)
755      */
756     public PageContext getPage() {
757         return page;
758     }
759 
760     /**
761      * Atribui valor especificado para PageContext page.<br>
762      * 
763      * @author N/C
764 	 * @since N/C
765 	 * @version N/C
766      * @param PageContext page - (The page to set)
767      */
768     public void setPage(PageContext page) {
769         this.page = page;
770     }
771 
772     /**
773      * @author N/C
774 	 * @since N/C
775 	 * @version N/C
776      */
777     public void release() {
778 
779     }
780     
781     public String getAcao() {
782 		return acao;
783 	}
784 
785 
786 	public void setAcao(String acao) {
787 		this.acao = acao;
788 	}
789 
790 
791 	public Boolean getTelaFiltro() {
792 		return telaFiltro;
793 	}
794 
795 
796 	public void setTelaFiltro(Boolean telaFiltro) {
797 		this.telaFiltro = telaFiltro;
798 	}
799 
800     /**
801      * Retorna Collection sisGrupoAtributoSgaObrigatorio.<br>
802      * 
803      * @author N/C
804 	 * @since N/C
805 	 * @version N/C
806      * @return Collection
807      */
808 //	public Collection getSisGrupoAtributoSgaObrigatorio() {
809 //		return sisGrupoAtributoSgaObrigatorio;
810 //	}
811 
812 	/**
813 	 * Atribui valor especificado para Collection sisGrupoAtributoSgaObrigatorio.<br>
814 	 * 
815 	 * @author N/C
816 	 * @since N/C
817 	 * @version N/C
818 	 * @param Collection sisGrupoAtributoSgaObrigatorio
819 	 */
820 //	public void setSisGrupoAtributoSgaObrigatorio(Collection sisGrupoAtributoSgaObrigatorio) {
821 //		this.sisGrupoAtributoSgaObrigatorio = sisGrupoAtributoSgaObrigatorio;
822 //	}
823 }