1
2
3
4 package ecar.dao;
5
6 import java.util.ArrayList;
7 import java.util.Iterator;
8 import java.util.List;
9
10 import javax.servlet.http.HttpServletRequest;
11
12 import org.hibernate.HibernateException;
13 import org.hibernate.Query;
14 import org.hibernate.Transaction;
15
16 import comum.database.Dao;
17 import comum.util.Data;
18 import comum.util.Pagina;
19 import comum.util.Util;
20
21 import ecar.exception.ECARException;
22 import ecar.pojo.EfIettFonTotRevEfieftr;
23 import ecar.pojo.EfIettPrevisaoRevEfiepr;
24 import ecar.pojo.EfIettPrevisaoRevEfieprPK;
25 import ecar.pojo.ExercicioExe;
26 import ecar.pojo.FonteRecursoFonr;
27 import ecar.pojo.ItemEstruturarevisaoIettrev;
28 import ecar.pojo.RecursoRec;
29
30
31
32
33 public class ItemEstruturaPrevisaoRevDao extends Dao {
34
35 public ItemEstruturaPrevisaoRevDao(HttpServletRequest request) {
36 super();
37 this.request = request;
38 }
39
40
41
42
43
44
45
46
47
48
49 public EfIettPrevisaoRevEfiepr buscar(Long codItemEstrutura, Long codFonteRecurso, Long codRecurso, Long codExercicio) throws ECARException {
50 EfIettPrevisaoRevEfieprPK comp_id = new EfIettPrevisaoRevEfieprPK();
51 comp_id.setCodFonr(codFonteRecurso);
52 comp_id.setCodExe(codExercicio);
53 comp_id.setCodIettrev(codItemEstrutura);
54 comp_id.setCodRec(codRecurso);
55 return (EfIettPrevisaoRevEfiepr) super.buscar(EfIettPrevisaoRevEfiepr.class, comp_id);
56 }
57
58
59
60
61
62
63
64
65
66
67 public EfIettPrevisaoRevEfiepr buscar(Integer codItemEstrutura, Long codFonteRecurso, Long codExercicio) throws ECARException, HibernateException {
68 Query query = session.createQuery("from EfIettPrevisaoRevEfiepr efiepr " + "where efiepr.exercicioExe.codExe = :codExe " + "and efiepr.itemEstruturarevisaoIettrev.codIettrev = :codIettRev " + "and efiepr.fonteRecursoFonr.codFonr = :codFonr " + "order by efiepr.fonteRecursoFonr.nomeFonr, efiepr.recursoRec.nomeRec");
69
70 query.setLong("codExe", codExercicio.longValue());
71 query.setInteger("codIettRev", codItemEstrutura.intValue());
72 query.setLong("codFonr", codFonteRecurso.longValue());
73
74 List lista = query.list();
75 if (lista != null && lista.size() > 0) {
76 return (EfIettPrevisaoRevEfiepr) lista.iterator().next();
77 }
78 else {
79 return null;
80 }
81 }
82
83
84
85
86
87
88 public void setPK(EfIettPrevisaoRevEfiepr itemEstruturaRecurso) {
89 EfIettPrevisaoRevEfieprPK comp_id = new EfIettPrevisaoRevEfieprPK();
90 comp_id.setCodExe(Long.valueOf(itemEstruturaRecurso.getExercicioExe().getCodExe().intValue()));
91 comp_id.setCodFonr(Long.valueOf(itemEstruturaRecurso.getFonteRecursoFonr().getCodFonr().intValue()));
92 comp_id.setCodIettrev(itemEstruturaRecurso.getItemEstruturarevisaoIettrev().getCodIettrev());
93 comp_id.setCodRec(Long.valueOf(itemEstruturaRecurso.getRecursoRec().getCodRec().intValue()));
94 itemEstruturaRecurso.setComp_id(comp_id);
95 }
96
97
98
99
100
101
102
103
104 public void setItemEstruturaPrevisao(HttpServletRequest request, EfIettPrevisaoRevEfiepr itemEstruturaRecurso) throws ECARException {
105 ItemEstruturarevisaoIettrev itemEstrutura = (ItemEstruturarevisaoIettrev) this.buscar(ItemEstruturarevisaoIettrev.class, Integer.valueOf(Pagina.getParamStr(request, "codIettrev")));
106
107
108
109 itemEstruturaRecurso.setExercicioExe((ExercicioExe) super.buscar(ExercicioExe.class, Long.valueOf(Pagina.getParamStr(request, "codExe"))));
110 itemEstruturaRecurso.setFonteRecursoFonr((FonteRecursoFonr) super.buscar(FonteRecursoFonr.class, Long.valueOf(Pagina.getParamStr(request, "codFonr"))));
111 itemEstruturaRecurso.setIndAtivoEfiepr("S");
112 itemEstruturaRecurso.setItemEstruturarevisaoIettrev(itemEstrutura);
113 itemEstruturaRecurso.setRecursoRec((RecursoRec) super.buscar(RecursoRec.class, Long.valueOf(Pagina.getParamStr(request, "codRec"))));
114 itemEstruturaRecurso.setValorAprovadoEfiepr(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorAprovadoEfiepr"))));
115 itemEstruturaRecurso.setValorRevisadoEfiepr(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorRevisadoEfiepr"))));
116 }
117
118
119
120
121
122
123 public void salvar(EfIettPrevisaoRevEfiepr itemEstruturaRecurso) throws ECARException {
124 setPK(itemEstruturaRecurso);
125 itemEstruturaRecurso.setDataInclusaoEfiepr(Data.getDataAtual());
126 try {
127 if (buscar(itemEstruturaRecurso.getItemEstruturarevisaoIettrev().getCodIettrev(), Long.valueOf(itemEstruturaRecurso.getFonteRecursoFonr().getCodFonr().intValue()), Long.valueOf(itemEstruturaRecurso.getRecursoRec().getCodRec().intValue()), Long.valueOf(itemEstruturaRecurso.getExercicioExe().getCodExe().intValue())) != null)
128 throw new ECARException("itemEstrutura.recurso.inclusao.jaExiste");
129 } catch (ECARException e) {
130 this.logger.error(e);
131 if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
132 super.salvar(itemEstruturaRecurso);
133 }
134 else
135
136 throw e;
137 }
138 }
139
140
141
142
143
144
145 public void excluirRecursos(EfIettFonTotRevEfieftr fonteRecurso) throws ECARException {
146 Transaction tx = null;
147
148 try {
149 ArrayList objetos = new ArrayList();
150
151 super.inicializarLogBean();
152
153 tx = session.beginTransaction();
154
155 List recursos = getRecursosByFonteRecurso(fonteRecurso.getFonteRecursoFonr().getCodFonr(), fonteRecurso.getItemEstruturarevisaoIettrev().getCodIettrev());
156 if (recursos != null) {
157 Iterator it = recursos.iterator();
158 while (it.hasNext()) {
159 EfIettPrevisaoRevEfiepr recurso = (EfIettPrevisaoRevEfiepr) it.next();
160 session.delete(recurso);
161 objetos.add(recurso);
162 }
163 }
164
165 tx.commit();
166
167 if (super.logBean != null) {
168 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
169 super.logBean.setOperacao("EXC");
170 Iterator itObj = objetos.iterator();
171
172 while (itObj.hasNext()) {
173 super.logBean.setObj(itObj.next());
174 super.loggerAuditoria.info(logBean.toString());
175 }
176 }
177 } catch (HibernateException e) {
178 if (tx != null)
179 try {
180 tx.rollback();
181 } catch (HibernateException r) {
182 this.logger.error(r);
183 throw new ECARException("erro.hibernateException");
184 }
185 this.logger.error(e);
186 throw new ECARException("erro.hibernateException");
187 }
188 }
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203 public void excluir(String[] codigosParaExcluir, Long codItemEstrutura) throws ECARException {
204 Transaction tx = null;
205
206 try {
207 ArrayList objetos = new ArrayList();
208
209 super.inicializarLogBean();
210
211 tx = session.beginTransaction();
212
213 for (int i = 0; i < codigosParaExcluir.length; i++) {
214 String[] codigos = codigosParaExcluir[i].split(",");
215 EfIettPrevisaoRevEfiepr itemEstruturaRecurso = buscar(codItemEstrutura, Long.valueOf(codigos[0]), Long.valueOf(codigos[1]), Long.valueOf(codigos[2]));
216
217 session.delete(itemEstruturaRecurso);
218 objetos.add(itemEstruturaRecurso);
219
220 }
221
222 tx.commit();
223
224 if (super.logBean != null) {
225 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
226 super.logBean.setOperacao("EXC");
227 Iterator itObj = objetos.iterator();
228
229 while (itObj.hasNext()) {
230 super.logBean.setObj(itObj.next());
231 super.loggerAuditoria.info(logBean.toString());
232 }
233 }
234 } catch (HibernateException e) {
235 if (tx != null)
236 try {
237 tx.rollback();
238 } catch (HibernateException r) {
239 this.logger.error(r);
240 throw new ECARException("erro.hibernateException");
241 }
242 this.logger.error(e);
243 throw new ECARException("erro.hibernateException");
244 }
245 }
246
247
248
249
250
251
252
253
254
255 public List getRecursosByFonteRecurso(Long codFonteRecurso, Long codItemEstrutura) throws ECARException {
256 EfIettPrevisaoRevEfiepr itemEstruturaRecurso = new EfIettPrevisaoRevEfiepr();
257 itemEstruturaRecurso.setFonteRecursoFonr((FonteRecursoFonr) super.buscar(FonteRecursoFonr.class, codFonteRecurso));
258 itemEstruturaRecurso.setItemEstruturarevisaoIettrev((ItemEstruturarevisaoIettrev) super.buscar(ItemEstruturarevisaoIettrev.class, codItemEstrutura));
259 itemEstruturaRecurso.setIndAtivoEfiepr("S");
260 return super.pesquisar(itemEstruturaRecurso, null);
261 }
262
263 public List getRecursosDistintosByFonteRecurso(Long codFonteRecurso, Integer codItemEstrutura) throws ECARException {
264 try {
265 StringBuilder sql = new StringBuilder();
266
267 sql.append("select distinct recurso from RecursoRec as recurso ");
268 sql.append("join recurso.efIettPrevisaoRevEfieprs as ieRecurso ");
269 sql.append("where ieRecurso.itemEstruturarevisaoIettrev.codIettrev = :item ");
270 sql.append("and ieRecurso.fonteRecursoFonr.codFonr = :fonte ");
271
272 Query query = this.getSession().createQuery(sql.toString());
273
274 query.setLong("item", codItemEstrutura.intValue());
275 query.setLong("fonte", codFonteRecurso.longValue());
276
277 return query.list();
278 } catch (HibernateException e) {
279 this.logger.error(e);
280 throw new ECARException(e);
281 }
282 }
283
284
285
286
287
288
289
290
291
292 public List getRecursosByFonteRecursoExercicio(ItemEstruturarevisaoIettrev itemEstrutura, ExercicioExe exercicio, FonteRecursoFonr fonte) throws ECARException {
293 List retorno = new ArrayList();
294 EfIettPrevisaoRevEfiepr recurso = new EfIettPrevisaoRevEfiepr();
295 recurso.setItemEstruturarevisaoIettrev(itemEstrutura);
296 recurso.setExercicioExe(exercicio);
297 recurso.setFonteRecursoFonr(fonte);
298 recurso.setIndAtivoEfiepr("S");
299 List ieRec = super.pesquisar(recurso, null);
300 if (ieRec != null) {
301 Iterator it = ieRec.iterator();
302 while (it.hasNext()) {
303 retorno.add(((EfIettPrevisaoRevEfiepr) it.next()).getRecursoRec());
304 }
305 }
306 return retorno;
307
308 }
309
310
311
312
313
314
315
316
317
318
319 public List getRecursosByFonteRecursoExercicio(Integer itemEstrutura, Long exercicio, Long fonte) throws ECARException {
320 ItemEstruturarevisaoIettrev item = (ItemEstruturarevisaoIettrev) this.buscar(ItemEstruturarevisaoIettrev.class, itemEstrutura);
321 ExercicioExe exercicioExe = (ExercicioExe) this.buscar(ExercicioExe.class, exercicio);
322 FonteRecursoFonr fonteRec = (FonteRecursoFonr) this.buscar(FonteRecursoFonr.class, fonte);
323 return this.getRecursosByFonteRecursoExercicio(item, exercicioExe, fonteRec);
324 }
325
326
327
328
329
330
331
332
333
334 public List getListaItemEstruturaPrevisao(ItemEstruturarevisaoIettrev item, ExercicioExe exercicio) throws ECARException {
335 List lista = new ArrayList();
336
337 try {
338
339 Query query = session.createQuery("from EfIettPrevisaoRevEfiepr efiepr " + "where efiepr.exercicioExe.codExe = :codExe " + "and efiepr.itemEstruturarevisaoIettrev.codIettrev = :codIettrev " + "order by efiepr.fonteRecursoFonr.nomeFonr, efiep.recursoRec.nomeRec");
340
341 query.setLong("codExe", exercicio.getCodExe().longValue());
342 query.setInteger("codIettrev", item.getCodIettrev().intValue());
343 lista = query.list();
344 } catch (HibernateException e) {
345 this.logger.error(e);
346 throw new ECARException("erro.hibernateException");
347 }
348 return lista;
349 }
350
351 }