View Javadoc

1   /*
2    * Criado em 29/12/2004
3    *
4    */
5   package ecar.taglib.util;
6   
7   import java.util.ArrayList;
8   import java.util.Collection;
9   import java.util.Iterator;
10  import java.util.List;
11  
12  import javax.servlet.jsp.JspException;
13  import javax.servlet.jsp.JspWriter;
14  import javax.servlet.jsp.PageContext;
15  import javax.servlet.jsp.tagext.Tag;
16  
17  import org.apache.log4j.Logger;
18  
19  import comum.util.Util;
20  
21  import ecar.dao.SisGrupoAtributoDao;
22  import ecar.pojo.EstrutTpFuncAcmpEtttfa;
23  import ecar.pojo.ObjetoEstrutura;
24  import ecar.pojo.SisGrupoAtributoSga;
25  
26  /**
27   * Taglib para gerar as rotinas de validação dos campos da tela de dados gerais do cadastro de Itens.<br>
28   * Gera também as funções de retorno dos parãmetros do pop up de pesquisa.<br>
29   * Permite validações específicas para cada campo que devem ser implementadas nos métodos geraValidacaoxxxxxxx<br>
30   * 
31   * @author felipev
32   */
33  public class ValidacaoItemEstruturaTag implements Tag{
34      private Collection atributos;
35  
36      private Collection sisGrupoAtributoSgaObrigatorio;
37      
38      private PageContext page = null;
39      
40      private StringBuffer validacaoCampos;
41      
42      private StringBuffer retornoPesquisa;
43      
44      private SisGrupoAtributoDao sisGrupoAtributoDao= null;
45      
46      private String labelOrgaoOrgByCodOrgaoResponsavel1Iett = null;
47         
48      
49      /**
50       * Inicializa a montagem da tag para ser adicionada na tela de HTML.<br>
51       * 
52       * @author N/C
53  	 * @since N/C
54  	 * @version N/C
55  	 * @return int
56  	 * @throws JspException
57       */
58      public int doStartTag() throws JspException {
59          try{
60              JspWriter writer = this.page.getOut();
61              StringBuffer s = new StringBuffer();
62              validacaoCampos = new StringBuffer();
63              retornoPesquisa = new StringBuffer();
64              int datas = 0;
65              String labelDataIni = "";
66              String labelDataFim = "";
67  
68          //Percorre os atributos para buscar o label do atributo "UnidadeOrcamentariaUO".
69          //Se labelOrgaoOrgByCodOrgaoResponsavel1Iett for igual a null, significa que este atributo não foi definido,
70          //ou não está ativo.
71              if(atributos != null){
72                  Iterator it = atributos.iterator();
73                  while(it.hasNext()){
74                      ObjetoEstrutura atributoEstrutura = (ObjetoEstrutura) it.next();
75                      if(atributoEstrutura.iGetNome().equals("orgaoOrgByCodOrgaoResponsavel1Iett")){
76                      	labelOrgaoOrgByCodOrgaoResponsavel1Iett = atributoEstrutura.iGetLabel();
77                  	}
78                  }                
79              }
80                          
81              if(atributos != null){
82                  Iterator it = atributos.iterator();
83                  while(it.hasNext()){
84                      ObjetoEstrutura atributoEstrutura = (ObjetoEstrutura) it.next();
85                      if(atributoEstrutura.iGetTipo() == EstrutTpFuncAcmpEtttfa.class) {
86                          geraPesquisaFuncaoAcompanhamento(atributoEstrutura);     
87                          geraValidacaoFuncaoAcompanhamento(atributoEstrutura);
88                      }
89                      else if(atributoEstrutura.iGetGrupoAtributosLivres() != null){
90                      	geraValidacaoAtributoLivre(atributoEstrutura);
91                  	}
92                      else {
93                      	try {
94  	                        this.getClass().
95  	                        	getMethod("geraValidacao" + Util.primeiraLetraToUpperCase(atributoEstrutura.iGetNome()), new Class[] { ObjetoEstrutura.class }).
96  	                        		invoke(this, new Object[] { atributoEstrutura });
97  	                        if("dataInicioIett".equals(atributoEstrutura.iGetNome()) || "dataTerminoIett".equals(atributoEstrutura.iGetNome())){
98  	                        	datas++;
99  	                        }
100 	                        
101 	                        if("dataInicioIett".equals(atributoEstrutura.iGetNome())){
102 	                        	labelDataIni = atributoEstrutura.iGetLabel();
103 	                        }
104 
105 	                        if("dataTerminoIett".equals(atributoEstrutura.iGetNome())){
106 	                        	labelDataFim = atributoEstrutura.iGetLabel();
107 	                        }
108 	                        
109                     	}
110                     	catch(Exception e) {
111                         	Logger logger = Logger.getLogger(this.getClass());
112                         	logger.error(e);
113                     	}
114                     }
115                 }
116                 
117                 if(datas >= 2){
118                 	geraValidacaoDatasInicioTermino(labelDataIni, labelDataFim);
119                 }
120             }
121             s.append("function validar(form) { \n");
122             if(validacaoCampos != null)
123                 s.append(validacaoCampos);
124             if(this.getSisGrupoAtributoSgaObrigatorio() != null && !this.getSisGrupoAtributoSgaObrigatorio().isEmpty()) {
125             	s.append(new ecar.dao.SisGrupoAtributoDao(null).getValidacoesAtributos(new ArrayList(this.getSisGrupoAtributoSgaObrigatorio())));
126             }
127             s.append( "return true;\n");
128             s.append("}\n");
129             if(retornoPesquisa != null)
130                 s.append(retornoPesquisa);
131             writer.print(s.toString());
132         } catch(Exception e){
133         	Logger logger = Logger.getLogger(this.getClass());
134         	logger.error(e);
135         }
136         return Tag.EVAL_BODY_INCLUDE;
137     }
138     
139     
140     /* versao antiga com validacao para funcao de acompanhamento "todos ou nenhum"
141     public int doStartTag() throws JspException {
142         try{
143             JspWriter writer = this.page.getOut();
144             StringBuffer s = new StringBuffer();
145             validacaoCampos = new StringBuffer();
146             retornoPesquisa = new StringBuffer();
147             List atributosFuncaoAcompanhamento = new ArrayList();
148             if(atributos != null){
149                 Iterator it = atributos.iterator();
150                 while(it.hasNext()){
151                     ObjetoEstrutura atributoEstrutura = (ObjetoEstrutura) it.next();
152                     if(atributoEstrutura.iGetTipo() == EstrutTpFuncAcmpEtttfa.class) {
153                         geraPesquisaFuncaoAcompanhamento(atributoEstrutura);
154                         atributosFuncaoAcompanhamento.add(atributoEstrutura);                        
155                     } else {
156                         this.getClass().
157                         	getMethod("geraValidacao" + Util.primeiraLetraToUpperCase(atributoEstrutura.iGetNome()), new Class[] { ObjetoEstrutura.class }).
158                         		invoke(this, new Object[] { atributoEstrutura });
159                     }
160                 }
161             }
162             Iterator itFunAcomp = atributosFuncaoAcompanhamento.iterator();
163             Object[] atributosEstrutura = atributosFuncaoAcompanhamento.toArray(); 
164             while(itFunAcomp.hasNext()){
165                 ObjetoEstrutura atributoEstrutura = (ObjetoEstrutura) itFunAcomp.next();
166                 validacaoCampos.append("if(document.form." + atributoEstrutura.iGetNome() + ".value != \'\'){");
167                 for(int i = 0; i < atributosEstrutura.length; i++){
168                     ObjetoEstrutura obj = (ObjetoEstrutura) atributosEstrutura[i];                    
169                     geraValidacaoCampoObrigatorio(obj);
170                 }
171                 validacaoCampos.append("}");
172             }
173             s.append("function validar(form) { \n");
174             if(validacaoCampos != null)
175                 s.append(validacaoCampos);
176             s.append( "return true;\n");
177             s.append("}\n");
178             if(retornoPesquisa != null)
179                 s.append(retornoPesquisa);
180             writer.print(s.toString());
181         } catch(Exception e){
182         	Logger logger = Logger.getLogger(this.getClass());
183         	logger.error(e);
184         }
185         return Tag.EVAL_BODY_INCLUDE;
186     }
187      */
188     
189     /**
190      * Gera validação NomeIett.<br>
191      * 
192      * @author N/C
193 	 * @since N/C
194 	 * @version N/C
195      * @param ObjetoEstrutura atributo
196      */
197     public void geraValidacaoNomeIett(ObjetoEstrutura atributo) {
198         if(atributo.iGetObrigatorio().booleanValue() == true)
199             geraValidacaoCampoObrigatorio(atributo);
200     }
201     /**
202      * Gera validação SiglaIett.<br>
203      * 
204      * @author N/C
205 	 * @since N/C
206 	 * @version N/C
207      * @param ObjetoEstrutura atributo
208      */
209     public void geraValidacaoSiglaIett(ObjetoEstrutura atributo) {
210         if(atributo.iGetObrigatorio().booleanValue() == true)        
211             geraValidacaoCampoObrigatorio(atributo);
212     }
213     /**
214      * Gera validação DescriçãoIett.<br>
215      * 
216      * @author N/C
217 	 * @since N/C
218 	 * @version N/C
219      * @param ObjetoEstrutura atributo
220      */
221     public void geraValidacaoDescricaoIett(ObjetoEstrutura atributo) {
222         if(atributo.iGetObrigatorio().booleanValue() == true)
223             geraValidacaoCampoObrigatorio(atributo);
224     }
225     /**
226      * Gera validaçãoOrigemIett.<br>
227      * 
228      * @author N/C
229 	 * @since N/C
230 	 * @version N/C
231      * @param ObjetoEstrutura atributo
232      */
233     public void geraValidacaoOrigemIett(ObjetoEstrutura atributo) {
234         if(atributo.iGetObrigatorio().booleanValue() == true)        
235             geraValidacaoCampoObrigatorio(atributo);
236     }
237     /**
238      * Gera validaçãoObjetivoGeralIett.<br>
239      * 
240      * @author N/C
241 	 * @since N/C
242 	 * @version N/C
243      * @param ObjetoEstrutura atributo
244      */
245     public void geraValidacaoObjetivoGeralIett(ObjetoEstrutura atributo) {
246         if(atributo.iGetObrigatorio().booleanValue() == true)
247             geraValidacaoCampoObrigatorio(atributo);
248     }
249     /**
250      * Gera validação BeneficiosIett.<br>
251      * 
252      * @author N/C
253 	 * @since N/C
254 	 * @version N/C
255      * @param ObjetoEstrutura atributo
256      */
257     public void geraValidacaoBeneficiosIett(ObjetoEstrutura atributo) {
258         if(atributo.iGetObrigatorio().booleanValue() == true)
259             geraValidacaoCampoObrigatorio(atributo);
260     }
261     /**
262      * Gera validação Objeto especificoIett.<br>
263      * 
264      * @author N/C
265 	 * @since N/C
266 	 * @version N/C
267      * @param ObjetoEstrutura atributo
268      */
269     public void geraValidacaoObjetivoEspecificoIett(ObjetoEstrutura atributo) {
270         if(atributo.iGetObrigatorio().booleanValue() == true)
271             geraValidacaoCampoObrigatorio(atributo);
272     }    
273     /**
274      * Gera validação data inicioIett.<br>
275      * 
276      * @author N/C
277 	 * @since N/C
278 	 * @version N/C
279      * @param ObjetoEstrutura atributo
280      */
281     public void geraValidacaoDataInicioIett(ObjetoEstrutura atributo) {
282         if(atributo.iGetObrigatorio().booleanValue() == true)
283             geraValidacaoCampoObrigatorio(atributo);
284         geraValidacaoData(atributo);
285     }
286     /**
287      * Gera validação Data termino Iett.<br>
288      * 
289      * @author N/C
290 	 * @since N/C
291 	 * @version N/C
292      * @param ObjetoEstrutura atributo
293      */
294     public void geraValidacaoDataTerminoIett(ObjetoEstrutura atributo) {
295         if(atributo.iGetObrigatorio().booleanValue() == true)
296             geraValidacaoCampoObrigatorio(atributo);
297         geraValidacaoData(atributo);
298     }
299     /**
300      * Gera validação IndCriticaIett.<br>
301      * 
302      * @author N/C
303 	 * @since N/C
304 	 * @version N/C
305      * @param ObjetoEstrutura atributo
306      */
307     public void geraValidacaoIndCriticaIett(ObjetoEstrutura atributo) {
308         if(atributo.iGetObrigatorio().booleanValue() == true)
309             geraValidacaoCampoObrigatorio(atributo);
310     }
311     /**
312      * Gera validação IndMonitoramentoIett.<br>
313      * 
314      * @author N/C
315 	 * @since N/C
316 	 * @version N/C
317      * @param ObjetoEstrutura atributo
318      */
319     public void geraValidacaoIndMonitoramentoIett(ObjetoEstrutura atributo) {
320 
321     }
322     /**
323      * Gera validação IndMonitoramIett.<br>
324      * 
325      * @author N/C
326 	 * @since N/C
327 	 * @version N/C
328      * @param ObjetoEstrutura atributo
329      */
330     public void geraValidacaoIndMonitoramIett(ObjetoEstrutura atributo) {
331 
332     }
333     /**
334      * Gera validação IndPermBloqPlanejamentoIett.<br>
335      * 
336      * @author N/C
337 	 * @since N/C
338 	 * @version N/C
339      * @param ObjetoEstrutura atributo
340      */
341     public void geraValidacaoIndBloqPlanejamentoIett(ObjetoEstrutura atributo) {
342 
343     }
344     /**
345      * Gera validação IndPermBloqPlanejIett.<br>
346      * 
347      * @author N/C
348 	 * @since N/C
349 	 * @version N/C
350      * @param ObjetoEstrutura atributo
351      */
352     public void geraValidacaoIndPermBloqPlanejIett(ObjetoEstrutura atributo) {
353 
354     }
355     /**
356      * Gera validação ValPrevistoFuturoIett.<br>
357      * 
358      * @author N/C
359 	 * @since N/C
360 	 * @version N/C
361      * @param ObjetoEstrutura atributo
362      */
363     public void geraValidacaoValPrevistoFuturoIett(ObjetoEstrutura atributo) {
364         if(atributo.iGetObrigatorio().booleanValue() == true)
365             geraValidacaoCampoObrigatorio(atributo);
366         geraValidacaoNumeroDecimal(atributo);
367     }
368     /**
369      * Gera validação DataInicioMonitoramentoIett.<br>
370      * 
371      * @author N/C
372 	 * @since N/C
373 	 * @version N/C
374      * @param ObjetoEstrutura atributo
375      */
376     public void geraValidacaoDataInicioMonitoramentoIett(ObjetoEstrutura atributo) {
377     }
378     /**
379      * Gera validação DataInclusaoIett.<br>
380      * 
381      * @author N/C
382 	 * @since N/C
383 	 * @version N/C
384      * @param ObjetoEstrutura atributo
385      */
386     public void geraValidacaoDataInclusaoIett(ObjetoEstrutura atributo) {
387     }
388 
389     /**
390      * Gera validação UsuarioUsuByCodUsuIncIett.<br>
391      * 
392      * @author N/C
393 	 * @since N/C
394 	 * @version N/C
395      * @param ObjetoEstrutura atributo
396      */
397     public void geraValidacaoUsuarioUsuByCodUsuIncIett(ObjetoEstrutura atributo) {
398     }
399     /**
400      * Gera validação por data UltManutençãoIett.<br>
401      * 
402      * @author N/C
403 	 * @since N/C
404 	 * @version N/C
405      * @param ObjetoEstrutura atributo
406      */
407     public void geraValidacaoDataUltManutencaoIett(ObjetoEstrutura atributo) {
408     }
409     /**
410      * Gera validação UsuarioUsuByCodUsuUltManutIett.<br>
411      * 
412      * @author N/C
413 	 * @since N/C
414 	 * @version N/C
415      * @param ObjetoEstrutura atributo
416      */
417     public void geraValidacaoUsuarioUsuByCodUsuUltManutIett(ObjetoEstrutura atributo) {
418     }
419 
420     /**
421      * Gera validação IndAtivoIett.<br>
422      * 
423      * @author N/C
424 	 * @since N/C
425 	 * @version N/C
426      * @param ObjetoEstrutura atributo
427      */
428     public void geraValidacaoIndAtivoIett(ObjetoEstrutura atributo) {
429     }
430 
431     /**
432      * Gera validação dataR1.<br>
433      * 
434      * @author N/C
435 	 * @since N/C
436 	 * @version N/C
437      * @param ObjetoEstrutura atributo
438      */
439     public void geraValidacaoDataR1(ObjetoEstrutura atributo) {
440         if(atributo.iGetObrigatorio().booleanValue() == true)
441             geraValidacaoCampoObrigatorio(atributo);
442         geraValidacaoData(atributo);
443     }
444 
445     /**
446      * Gera validação dataR2.<br>
447      * 
448      * @author N/C
449 	 * @since N/C
450 	 * @version N/C
451      * @param ObjetoEstrutura atributo
452      */
453     public void geraValidacaoDataR2(ObjetoEstrutura atributo) {
454         if(atributo.iGetObrigatorio().booleanValue() == true)
455             geraValidacaoCampoObrigatorio(atributo);
456         geraValidacaoData(atributo);
457     }
458 
459     /**
460      * Gera validação dataR3.<br>
461      * 
462      * @author N/C
463 	 * @since N/C
464 	 * @version N/C
465      * @param ObjetoEstrutura atributo
466      */
467     public void geraValidacaoDataR3(ObjetoEstrutura atributo) {
468         if(atributo.iGetObrigatorio().booleanValue() == true)
469             geraValidacaoCampoObrigatorio(atributo);
470         geraValidacaoData(atributo);
471     }
472 
473     /**
474      * Gera validação dataR4.<br>
475      * 
476      * @author N/C
477 	 * @since N/C
478 	 * @version N/C
479      * @param ObjetoEstrutura atributo
480      */
481 
482     public void geraValidacaoDataR4(ObjetoEstrutura atributo) {
483         if(atributo.iGetObrigatorio().booleanValue() == true)
484             geraValidacaoCampoObrigatorio(atributo);
485         geraValidacaoData(atributo);
486     }
487 
488     /**
489      * Gera validação dataR5.<br>
490      * 
491      * @author N/C
492 	 * @since N/C
493 	 * @version N/C
494      * @param ObjetoEstrutura atributo
495      */
496     public void geraValidacaoDataR5(ObjetoEstrutura atributo) {
497         if(atributo.iGetObrigatorio().booleanValue() == true)
498             geraValidacaoCampoObrigatorio(atributo);
499         geraValidacaoData(atributo);
500     }
501 
502     /**
503      * Gera validação descrisão1.<br>
504      * 
505      * @author N/C
506 	 * @since N/C
507 	 * @version N/C
508      * @param ObjetoEstrutura atributo
509      */
510     public void geraValidacaoDescricaoR1(ObjetoEstrutura atributo) {
511         if(atributo.iGetObrigatorio().booleanValue() == true)
512             geraValidacaoCampoObrigatorio(atributo);        
513     }
514 
515     /**
516      * Gera validação descrisão2.<br>
517      * 
518      * @author N/C
519 	 * @since N/C
520 	 * @version N/C
521      * @param ObjetoEstrutura atributo
522      */
523     public void geraValidacaoDescricaoR2(ObjetoEstrutura atributo) {
524         if(atributo.iGetObrigatorio().booleanValue() == true)
525             geraValidacaoCampoObrigatorio(atributo);        
526     }
527 
528     /**
529      * Gera validação descrisão3.<br>
530      * 
531      * @author N/C
532 	 * @since N/C
533 	 * @version N/C
534      * @param ObjetoEstrutura atributo
535      */
536     public void geraValidacaoDescricaoR3(ObjetoEstrutura atributo) {
537         if(atributo.iGetObrigatorio().booleanValue() == true)
538             geraValidacaoCampoObrigatorio(atributo);        
539     }
540 
541     /**
542      * Gera validação descrisão4.<br>
543      * 
544      * @author N/C
545 	 * @since N/C
546 	 * @version N/C
547      * @param ObjetoEstrutura atributo
548      */
549     public void geraValidacaoDescricaoR4(ObjetoEstrutura atributo) {
550         if(atributo.iGetObrigatorio().booleanValue() == true)
551             geraValidacaoCampoObrigatorio(atributo);        
552     }
553 
554     /**
555      * Gera validação descrisão5.<br>
556      * 
557      * @author N/C
558 	 * @since N/C
559 	 * @version N/C
560      * @param ObjetoEstrutura atributo
561      */
562     public void geraValidacaoDescricaoR5(ObjetoEstrutura atributo) {
563         if(atributo.iGetObrigatorio().booleanValue() == true)
564             geraValidacaoCampoObrigatorio(atributo);        
565     }
566 
567     /**
568      * Gera validação AreaAre.<br>
569      * 
570      * @author N/C
571 	 * @since N/C
572 	 * @version N/C
573      * @param ObjetoEstrutura atributo
574      */
575     public void geraValidacaoAreaAre(ObjetoEstrutura atributo) {
576         if(atributo.iGetObrigatorio().booleanValue() == true)
577             geraValidacaoCampoObrigatorio(atributo);  
578     }
579 
580     /**
581      * Gera validação SubAreaAre.<br>
582      * 
583      * @author N/C
584 	 * @since N/C
585 	 * @version N/C
586      * @param ObjetoEstrutura atributo
587      */
588     public void geraValidacaoSubAreaSare(ObjetoEstrutura atributo) {
589         if(atributo.iGetObrigatorio().booleanValue() == true)
590             geraValidacaoCampoObrigatorio(atributo);  
591     }
592     /**
593      * Gera validação unidade orçamentaria UO.<br>
594      * 
595      * @author N/C
596 	 * @since N/C
597 	 * @version N/C
598      * @param ObjetoEstrutura atributo
599      */
600     public void geraValidacaoUnidadeOrcamentariaUO(ObjetoEstrutura atributo) {
601         String labelOrgaoResponsavel = "Orgão Responsável";
602         
603         if(labelOrgaoOrgByCodOrgaoResponsavel1Iett != null)
604         	labelOrgaoResponsavel = labelOrgaoOrgByCodOrgaoResponsavel1Iett; 
605     	
606         if(atributo.iGetObrigatorio().booleanValue() == true){
607             //geraValidacaoCampoObrigatorio(atributo);
608             getValidacaoCampos().append(" if (document.form.").append(atributo.iGetNome()).append(" != null && document.form.").append(atributo.iGetNome()).append(".selectedIndex == 0 && document.form." ).append(atributo.iGetNome()).append(".length > 1){\n");
609             getValidacaoCampos().append("   alert(\"Obrigatório o Preenchimento do Campo ").append(atributo.iGetLabel()).append("\"); \n");
610             getValidacaoCampos().append("   return false; \n");
611             getValidacaoCampos().append(" } else if(document.form.").append(atributo.iGetNome()).append(" == null || document.form.").append(atributo.iGetNome()).append(".selectedIndex == 0){\n");           
612             getValidacaoCampos().append("    alert(\"Obrigatório o Preenchimento do Campo ").append(atributo.iGetLabel())
613 								.append(             ". Para ativá-lo, o campo ").append(labelOrgaoResponsavel)
614 								.append(             " deve estar habilitado e selecionado com um item que possua uma unidade orçamentária cadastrada.\");\n" );
615             getValidacaoCampos().append("    return false; \n");
616             getValidacaoCampos().append("   } \n");                        
617         }
618     }
619     /**
620      * Gera validação orgão por codigo do orgao responsavel Iett.<Br>
621      * 
622      * @author N/C
623 	 * @since N/C
624 	 * @version N/C
625      * @param ObjetoEstrutura atributo
626      */
627     public void geraValidacaoOrgaoOrgByCodOrgaoResponsavel1Iett(ObjetoEstrutura atributo) {
628         if(atributo.iGetObrigatorio().booleanValue() == true)
629             geraValidacaoCampoObrigatorio(atributo);  
630     }
631     /**
632      * Gera validação orgão por codigo do orgao responsavel2 Iett.<br>
633      * 
634      * @author N/C
635 	 * @since N/C
636 	 * @version N/C
637      * @param ObjetoEstrutura atributo
638      */
639     public void geraValidacaoOrgaoOrgByCodOrgaoResponsavel2Iett(ObjetoEstrutura atributo) {
640         if(atributo.iGetObrigatorio().booleanValue() == true)
641             geraValidacaoCampoObrigatorio(atributo);  
642     }
643     /**
644      * Gera validação PeriodicidadePrdc.<br>
645      * 
646      * @author N/C
647 	 * @since N/C
648 	 * @version N/C
649      * @param ObjetoEstrutura atributo
650      */
651     public void geraValidacaoPeriodicidadePrdc(ObjetoEstrutura atributo) {
652         if(atributo.iGetObrigatorio().booleanValue() == true)
653             geraValidacaoCampoObrigatorio(atributo);  
654     }
655     /**
656      * Gera validação situação sit.<br>
657      * 
658      * @author N/C
659 	 * @since N/C
660 	 * @version N/C
661      * @param ObjetoEstrutura atributo
662      */
663     public void geraValidacaoSituacaoSit(ObjetoEstrutura atributo) {
664         if(atributo.iGetObrigatorio().booleanValue() == true)
665             geraValidacaoCampoObrigatorio(atributo);  
666     }
667     /**
668      * Gera validação função acompanhamento.<br>
669      * 
670      * @author N/C
671 	 * @since N/C
672 	 * @version N/C
673      * @param ObjetoEstrutura atributo
674      */
675     public void geraValidacaoFuncaoAcompanhamento(ObjetoEstrutura atributo) {
676         if(atributo.iGetObrigatorio().booleanValue() == true)
677             geraValidacaoCampoObrigatorio(atributo);
678     }
679     
680     /**
681      * Gera validação Nivel planejamento.<br>
682      * 
683      * @author N/C
684 	 * @since N/C
685 	 * @version N/C
686      * @param ObjetoEstrutura atributo
687      */
688     public void geraValidacaoNivelPlanejamento(ObjetoEstrutura atributo){
689     	//TODO: Implementar esta validação
690     }
691     /**
692      * Gera validação Função acompanhamento.<br>
693      * 
694      * @author N/C
695 	 * @since N/C
696 	 * @version N/C
697      * @param ObjetoEstrutura atributo
698      */
699     public void geraPesquisaFuncaoAcompanhamento(ObjetoEstrutura atributo){
700         getRetornoPesquisa().append( "function retorno").append(atributo.iGetNome()).append("(codigo, descricao) {\n");
701         getRetornoPesquisa().append( "if (document.form.").append(atributo.iGetNome()).append(".value != codigo){\n");
702         getRetornoPesquisa().append( "	if (eval(document.form.alterou)){\n");
703         getRetornoPesquisa().append( "	document.form.alterou.value = 'S';\n");
704         getRetornoPesquisa().append( "	}\n");
705         getRetornoPesquisa().append( "}\n");
706         getRetornoPesquisa().append( "document.form.nome").append(atributo.iGetNome()).append(".value = descricao;\n");
707         getRetornoPesquisa().append( "document.form.").append(atributo.iGetNome()).append(".value = codigo;\n");
708         getRetornoPesquisa().append("}\n");
709     }
710 
711     /**
712      * Gera validação campo obrigatorio.<br>
713      * 
714      * @author N/C
715 	 * @since N/C
716 	 * @version N/C
717      * @param ObjetoEstrutura atributo
718      */
719     private void geraValidacaoCampoObrigatorio(ObjetoEstrutura atributo){        
720         getValidacaoCampos().append( " if (document.form.").append(atributo.iGetNome()).append(".value == \"\"){\n" );
721         getValidacaoCampos().append( "  alert(\"Obrigatório o Preenchimento do Campo ").append(atributo.iGetLabel()).append("\");\n" );
722         getValidacaoCampos().append(" return false; \n");
723         getValidacaoCampos().append( " } \n");
724     }
725     
726     /**
727      * Gera validação data.<br>
728      * 
729      * @author N/C
730 	 * @since N/C
731 	 * @version N/C
732      * @param ObjetoEstrutura atributo
733      */
734     private void geraValidacaoData(ObjetoEstrutura atributo){
735         getValidacaoCampos().append("if(form.").append(atributo.iGetNome()).append(".value != \"\" && !validaData(form.").append(atributo.iGetNome()).append(",false,true,true)){\n");
736         getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(atributo.iGetLabel()).append("\");\n" );
737         getValidacaoCampos().append(" return false; \n");
738         getValidacaoCampos().append( " } \n");
739 
740     }
741     
742     /**
743      * Gera validação moeda.<br>
744      * 
745      * @author N/C
746 	 * @since N/C
747 	 * @version N/C
748      * @param ObjetoEstrutura atributo
749      */
750     private void geraValidacaoMoeda(ObjetoEstrutura atributo){
751         getValidacaoCampos().append("if(document.form.").append(atributo.iGetNome()).append(".value != \"\" && !isValidMoeda(form.").append(atributo.iGetNome()).append(".value)){\n");
752         getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(atributo.iGetLabel()).append("\");\n" );
753         getValidacaoCampos().append(" return false; \n");
754         getValidacaoCampos().append( " } \n");
755         
756     }
757     
758     /**
759      * Gera validação Numero Decimal.<br>
760      * 
761      * @author N/C
762 	 * @since N/C
763 	 * @version N/C
764      * @param ObjetoEstrutura atributo
765      */
766     private void geraValidacaoNumeroDecimal(ObjetoEstrutura atributo){
767         getValidacaoCampos().append("if(document.form.").append(atributo.iGetNome()).append(".value != \"\" && !validaDecimal(form.").append(atributo.iGetNome()).append(".value)){\n");
768         getValidacaoCampos().append( "  alert(\"Valor inválido para o campo ").append(atributo.iGetLabel()).append("\");\n" );
769         getValidacaoCampos().append( "  document.form.").append(atributo.iGetNome()).append(".focus();\n" );
770         getValidacaoCampos().append(" return false; \n");
771         getValidacaoCampos().append( " } \n");
772         
773     }
774     /**
775      * Gera validação Datas Inicio Termino.<br>
776      * 
777      * @author N/C
778 	 * @since N/C
779 	 * @version N/C
780      * @param ObjetoEstrutura atributo
781      */
782     private void geraValidacaoDatasInicioTermino(String labelDataIni, String labelDataFim){
783     	getValidacaoCampos().append("/**** Validação das Datas de Inicio e Fim *****/");
784     	getValidacaoCampos().append("if(document.form.dataInicioIett.value != \"\" && document.form.dataInicioIett.value.length < 10){");
785     	getValidacaoCampos().append("  alert(\"Valor inválido para ").append(labelDataIni).append("\");");
786     	getValidacaoCampos().append("  document.form.dataInicioIett.focus();");
787     	getValidacaoCampos().append("  return false;");
788     	getValidacaoCampos().append("}");
789     	getValidacaoCampos().append("if(document.form.dataTerminoIett.value != \"\" && document.form.dataTerminoIett.value.length < 10){");
790     	getValidacaoCampos().append("  alert(\"Valor inválido para ").append(labelDataFim).append("\");");
791     	getValidacaoCampos().append("  document.form.dataTerminoIett.focus();");
792     	getValidacaoCampos().append("  return false;");
793     	getValidacaoCampos().append("}");
794     	getValidacaoCampos().append("var dataTempIni = document.form.dataInicioIett.value.split(\"/\");");
795     	getValidacaoCampos().append("var dataIni = parseInt(dataTempIni[2] + dataTempIni[1] + dataTempIni[0]);");
796     	getValidacaoCampos().append("var dataTempFim = document.form.dataTerminoIett.value.split(\"/\");");
797     	getValidacaoCampos().append("var dataFim = parseInt(dataTempFim[2] + dataTempFim[1] + dataTempFim[0]);");
798     	getValidacaoCampos().append("if(dataFim < dataIni){");
799     	getValidacaoCampos().append("  alert(\"").append(labelDataFim).append(" é menor que ").append(labelDataIni).append("\");");
800     	getValidacaoCampos().append("  document.form.dataInicioIett.focus();");
801     	getValidacaoCampos().append("  return false;");
802     	getValidacaoCampos().append("}");
803     	getValidacaoCampos().append("/**** Fim da Validação das Datas de Inicio e Fim *****/");
804     }
805     
806     private void geraValidacaoAtributoLivre(ObjetoEstrutura atributo){
807     	if(atributo.iGetObrigatorio().booleanValue() == true && atributo.iGetGrupoAtributosLivres() != null){
808     		SisGrupoAtributoSga grupoAtributo = atributo.iGetGrupoAtributosLivres();
809 
810     		getValidacaoCampos().append("/**** Início Validação Atributo Livre " + atributo.iGetNome() + " ****/");    		
811     		if ( sisGrupoAtributoDao==null)  {
812     			getValidacaoCampos().append((new SisGrupoAtributoDao(null)).getValidacaoAtributo(grupoAtributo));
813     		} else {
814     			getValidacaoCampos().append(sisGrupoAtributoDao.getValidacaoAtributo(grupoAtributo));
815     		}    		    		
816     		getValidacaoCampos().append("/**** Fim Validação Atributo Livre " + atributo.iGetNome() + " ****/");
817     	}
818     }
819         
820     
821     
822     public SisGrupoAtributoDao getSisGrupoAtributoDao() {
823 		return sisGrupoAtributoDao;
824 	}
825 
826 
827 	public void setSisGrupoAtributoDao(SisGrupoAtributoDao sisGrupoAtributoDao) {
828 		this.sisGrupoAtributoDao = sisGrupoAtributoDao;
829 	}
830 
831 
832 	/**
833      * Retorna Collection atributos.<br>
834      * 
835      * @author N/C
836 	 * @since N/C
837 	 * @version N/C
838      * @return Collection - (Returns the atributos)
839      */
840     public Collection getAtributos() {
841         return atributos;
842     }
843     
844     /**
845      * Atribui valor especificado para Collection atributos.<br>
846      * 
847      * @author N/C
848 	 * @since N/C
849 	 * @version N/C
850      * @param Collection atributos - (The atributos to set)
851      */
852     public void setAtributos(Collection atributos) {
853         this.atributos = atributos;
854     }
855     
856     /**
857      * Retorna StringBuffer retornoPesquisa.<br>
858      * 
859      * @author N/C
860 	 * @since N/C
861 	 * @version N/C
862      * @return StringBuffer - (Returns the retornoPesquisa)
863      */
864     public StringBuffer getRetornoPesquisa() {
865         return retornoPesquisa;
866     }
867     
868     /**
869      * Atribui valor especificado para StringBuffer retornoPesquisa.<br>
870      * 
871      * @author N/C
872 	 * @since N/C
873 	 * @version N/C
874      * @param StringBuffer retornoPesquisa - (The retornoPesquisa to set)
875      */
876     public void setRetornoPesquisa(StringBuffer retornoPesquisa) {
877         this.retornoPesquisa = retornoPesquisa;
878     }
879     
880     /**
881      * Retorna StringBuffer validacaoCampos.<br>
882      * 
883      * @author N/C
884 	 * @since N/C
885 	 * @version N/C
886      * @return StringBuffer Returns - (the validacaoCampos)
887      */
888     public StringBuffer getValidacaoCampos() {
889         return validacaoCampos;
890     }
891     
892     /**
893      * Atribui valor especificado para StringBuffer validacaoCampos.<br>
894      * 
895      * @author N/C
896 	 * @since N/C
897 	 * @version N/C
898      * @param StringBuffer validacaoCampos - (The validacaoCampos to set)
899      */
900     public void setValidacaoCampos(StringBuffer validacaoCampos) {
901         this.validacaoCampos = validacaoCampos;
902     }
903     
904     /**
905      * Encerra Tag.<br>
906      * 
907      * @author N/C
908 	 * @since N/C
909 	 * @version N/C
910 	 * @return int
911 	 * @throws JspException
912      */
913     public int doEndTag() throws JspException {
914         return Tag.EVAL_PAGE;
915     }
916 
917     /**
918      * Atribui valor especificado para PageContext page.<br>
919      * 
920      * @author N/C
921 	 * @since N/C
922 	 * @version N/C
923 	 * @param PageContext arg0
924      */
925     public void setPageContext(PageContext arg0) {
926         this.page = arg0;
927     }
928 
929     /**
930      * 
931      * 
932      * @author N/C
933 	 * @since N/C
934 	 * @version N/C
935 	 * @param Tag arg0
936      */
937     public void setParent(Tag arg0) {
938     }
939 
940     /**
941      * Retorna Tag null.<br>
942      * 
943      * @author N/C
944 	 * @since N/C
945 	 * @version N/C
946 	 * @rreturn Tag
947      */
948     public Tag getParent() {
949         return null;
950     }
951 
952     /**
953      * Retorna PageContext page.<br>
954      * 
955      * @author N/C
956 	 * @since N/C
957 	 * @version N/C
958      * @return PageContext - (Returns the page)
959      */
960     public PageContext getPage() {
961         return page;
962     }
963 
964     /**
965      * Atribui valor especificado para PageContext page.<br>
966      * 
967      * @author N/C
968 	 * @since N/C
969 	 * @version N/C
970      * @param PageContext page - (The page to set)
971      */
972     public void setPage(PageContext page) {
973         this.page = page;
974     }
975 
976     /**
977      * @author N/C
978 	 * @since N/C
979 	 * @version N/C
980      */
981     public void release() {
982 
983     }
984 
985     /**
986      * Retorna Collection sisGrupoAtributoSgaObrigatorio.<br>
987      * 
988      * @author N/C
989 	 * @since N/C
990 	 * @version N/C
991      * @return Collection
992      */
993 	public Collection getSisGrupoAtributoSgaObrigatorio() {
994 		return sisGrupoAtributoSgaObrigatorio;
995 	}
996 
997 	/**
998 	 * Atribui valor especificado para Collection sisGrupoAtributoSgaObrigatorio.<br>
999 	 * 
1000 	 * @author N/C
1001 	 * @since N/C
1002 	 * @version N/C
1003 	 * @param Collection sisGrupoAtributoSgaObrigatorio
1004 	 */
1005 	public void setSisGrupoAtributoSgaObrigatorio(Collection sisGrupoAtributoSgaObrigatorio) {
1006 		this.sisGrupoAtributoSgaObrigatorio = sisGrupoAtributoSgaObrigatorio;
1007 	}
1008 }