View Javadoc

1   /*
2    * Criado em 22/12/2004
3    *
4    */
5   package ecar.popup;
6   
7   import java.util.ArrayList;
8   import java.util.Collection;
9   import java.util.List;
10  
11  import javax.servlet.http.HttpServletRequest;
12  
13  import org.hibernate.HibernateException;
14  import org.hibernate.Query;
15  
16  import comum.database.Dao;
17  import comum.util.Pagina;
18  import comum.util.Util;
19  
20  import ecar.dao.ExercicioDao;
21  import ecar.dao.FonteRecursoDao;
22  import ecar.dao.ItemEstruturaDao;
23  import ecar.dao.ItemEstruturaPrevisaoDao;
24  import ecar.dao.RecursoDao;
25  import ecar.exception.ECARException;
26  import ecar.pojo.ExercicioExe;
27  import ecar.pojo.FonteRecursoFonr;
28  import ecar.pojo.ItemEstruturaIett;
29  import ecar.pojo.RecursoRec;
30  
31  /**
32   * @author felipev
33   *
34   */
35  public class PopUpRecurso implements PopUpPesquisa{
36      
37  
38      // array de nomes de campos em que pode pesquisar
39      private String[] pesquisarEm;
40      
41      // declare o seu pojo e o Dao aqui
42      private RecursoRec pojo;
43      private RecursoDao dao;
44      
45      private ExercicioExe exercicio;
46      private ItemEstruturaIett item;
47      private FonteRecursoFonr fonte;
48  
49      public PopUpRecurso(){
50          pojo = new RecursoRec();
51          dao = new RecursoDao(null);
52          this.setPesquisarEm(new String[] {"Nome"});
53      }
54      
55      /**
56       * Devolve para o template jsp o Dao.<br>
57       * 
58       * @author N/C
59       * @since N/C
60       * @version N/C
61       * @return Dao
62       * @see ecar.popup.PopUpPesquisa#getDao()
63       */
64      public Dao getDao() {
65          return dao;
66      }
67      
68      /**
69       * Retorna String "Recursos".<br>
70       * 
71       * @author N/C
72       * @since N/C
73       * @version N/C
74       * @return String
75       */
76      public String getTitulo(){
77          return "Recursos";
78      }
79  
80      /**
81       * Recebe o argumento de pesquisa do template jsp e seta nos respectivos campos.<br>
82       * String arg 			- a string do argumento de pesquisa.<br>
83       * String[] pesquisarEm - um array de string com os nomes dos campos que devem ser pesquisados.<br>
84       * 
85       * @author N/C
86       * @since N/C
87       * @version N/C
88       * @param HttpServletRequest request
89       * @throws ECARException
90       */
91      public void setArgPesquisa(HttpServletRequest request) throws ECARException{
92      	String arg = Pagina.getParam(request, "hidArg");
93      	if(!"".equals(Pagina.getParamStr(request, "codExercicio"))){
94      	    exercicio = (ExercicioExe) new ExercicioDao(null).buscar(ExercicioExe.class, Long.valueOf(Pagina.getParamStr(request, "codExercicio")));
95      	}
96      	if(!"".equals(Pagina.getParamStr(request, "codIett"))){
97      	    item = (ItemEstruturaIett) new ItemEstruturaDao(null).buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett")));
98      	}
99      	if(!"".equals(Pagina.getParamStr(request, "codFonr"))){
100     	    fonte = (FonteRecursoFonr) new FonteRecursoDao(null).buscar(FonteRecursoFonr.class, Long.valueOf(Pagina.getParamStr(request, "codFonr")));
101     	}        
102     	String[] pesquisarEm = request.getParameterValues("hidPesquisarEm");
103         
104         if (pesquisarEm != null)
105 	        for (int i = 0; i < pesquisarEm.length; i++) {
106 	            if ("0".equals(pesquisarEm[i]))
107 	                pojo.setNomeRec(arg);
108 	        }
109     }
110 
111     /**
112      * Retorna recursos dentro do periodo definido no exercicio.<br>
113      * Metodo que realiza pesquisa.<br>
114      * 
115      * @author N/C
116      * @since N/C
117      * @version N/C
118      * @return List
119      * @throws ECARException
120      */
121     public List pesquisar() throws ECARException {        
122         try{
123             Query query = new RecursoDao(null).getSession().createQuery(
124             		"from RecursoRec r where not (:dataInicial < r.dataIniValidadeRec or :dataFinal > r.dataFimValidadeRec) and r.indAtivoRec='S'");
125             query.setDate("dataInicial", exercicio.getDataInicialExe());
126             query.setDate("dataFinal", exercicio.getDataFinalExe());
127             List recursos = query.list(); 
128             List recursosCadastrados = new ItemEstruturaPrevisaoDao(null).getRecursosByFonteRecursoExercicio(item, exercicio, fonte);
129             Collection resultado = Util.diferenca(recursos, recursosCadastrados);
130             List retorno = new ArrayList();
131             retorno.addAll(resultado);
132             return retorno;
133         } catch(HibernateException e){
134 			org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
135             throw new ECARException(e);
136         }
137     }
138     
139     /**
140      * Devolve para o template o codigo do radio button.<br>
141      * 
142      * @author N/C
143      * @since N/C
144      * @version N/C
145      * @return String
146      */
147     public String getCodigo() {
148         return pojo.getCodRec().toString();
149     }
150     
151     /**
152      * Devolve para o template a descricao.<br>
153      * 
154      * @author N/C
155      * @since N/C
156      * @version N/C
157      * @return String
158      */
159     public String getDescricao() {
160         return pojo.getNomeRec();
161     }
162     
163     /**
164      * Recebe um objeto do template.<br>
165      * 
166      * @author N/C
167      * @since N/C
168      * @version N/C
169      * @param Object o
170      */
171     public void setPojo(Object o) {
172         pojo = (RecursoRec) o;
173     }
174 
175     /**
176      * Retorna para o template um array com os nomes para montar os checkbox.<br>
177      * 
178      * @author N/C
179      * @since N/C
180      * @version N/C
181      * @return String[] - (Returns the pesquisarEm)
182      */
183     public String[] getPesquisarEm() {
184         return pesquisarEm;
185     }
186 
187     /**
188      * Atribui internamente um array com os campos possiveis para a pesquisa.<br>
189      * 
190      * @author N/C
191      * @since N/C
192      * @version N/C
193      * @param String[] pesquisarEm - (The pesquisarEm to set)
194      */
195     private void setPesquisarEm(String[] pesquisarEm) {
196         this.pesquisarEm = pesquisarEm;
197     }
198     
199 
200 }