1
2
3
4 package ecar.dao;
5
6 import java.math.BigDecimal;
7 import java.util.ArrayList;
8 import java.util.Iterator;
9 import java.util.List;
10 import java.util.Set;
11
12 import javax.servlet.http.HttpServletRequest;
13
14 import org.hibernate.HibernateException;
15 import org.hibernate.Query;
16 import org.hibernate.Transaction;
17
18 import comum.database.Dao;
19 import comum.util.Data;
20 import comum.util.Pagina;
21 import comum.util.Util;
22
23 import ecar.exception.ECARException;
24 import ecar.pojo.EfIettFonteTotEfieft;
25 import ecar.pojo.EfItemEstContaEfiec;
26 import ecar.pojo.EfItemEstPrevisaoEfiep;
27 import ecar.pojo.EfItemEstPrevisaoEfiepPK;
28 import ecar.pojo.EspecieEsp;
29 import ecar.pojo.ExercicioExe;
30 import ecar.pojo.FonteFon;
31 import ecar.pojo.FonteRecursoFonr;
32 import ecar.pojo.ItemEstruturaIett;
33 import ecar.pojo.ItemEstruturaIettPPA;
34 import ecar.pojo.ItemEstruturaSisAtributoIettSatb;
35 import ecar.pojo.RecursoRec;
36 import ecar.util.Dominios;
37
38
39
40
41 public class ItemEstruturaPrevisaoDao extends Dao {
42
43 public ItemEstruturaPrevisaoDao(HttpServletRequest request) {
44 super();
45 this.request = request;
46 }
47
48
49
50
51
52
53
54
55
56
57 public EfItemEstPrevisaoEfiep buscar(Long codItemEstrutura, Long codFonteRecurso, Long codRecurso, Long codExercicio) throws ECARException {
58
59
60
61
62
63
64
65
66
67
68
69
70 try {
71 StringBuilder select = new StringBuilder();
72 select.append("select efiep from EfItemEstPrevisaoEfiep efiep");
73 select.append(" where efiep.itemEstruturaIett.codIett = :item and efiep.itemEstruturaIett.indAtivoIett = 'S'");
74 select.append(" and efiep.exercicioExe.codExe = :exe");
75 select.append(" and efiep.fonteRecursoFonr.codFonr = :fonr");
76 select.append(" and efiep.recursoRec.codRec = :rec");
77
78 Query q = this.session.createQuery(select.toString());
79
80 q.setLong("item", codItemEstrutura.longValue());
81 q.setLong("exe", codExercicio.longValue());
82 q.setLong("fonr", codFonteRecurso.longValue());
83 q.setLong("rec", codRecurso.longValue());
84
85 q.setMaxResults(1);
86
87 Object o = q.uniqueResult();
88
89 return (o != null) ? (EfItemEstPrevisaoEfiep) o : new EfItemEstPrevisaoEfiep();
90 } catch (HibernateException e) {
91 this.logger.error(e);
92 throw new ECARException(e);
93 }
94 }
95
96
97
98
99
100
101
102
103
104
105 public EfItemEstPrevisaoEfiep buscar(Long codItemEstrutura, Long codFonteRecurso, Long codExercicio) throws ECARException, HibernateException {
106 Query query = session.createQuery("from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.codIett = :codIett " + "and efiep.itemEstruturaIett.indAtivoIett = 'S' " + "and efiep.fonteRecursoFonr.codFonr = :codFonr " + "order by efiep.fonteRecursoFonr.nomeFonr, efiep.recursoRec.nomeRec");
107
108 query.setLong("codExe", codExercicio.longValue());
109 query.setLong("codIett", codItemEstrutura.longValue());
110 query.setLong("codFonr", codFonteRecurso.longValue());
111
112 List lista = query.list();
113 if (lista != null && lista.size() > 0) {
114 return (EfItemEstPrevisaoEfiep) lista.iterator().next();
115 }
116 else {
117 return null;
118 }
119 }
120
121
122
123
124
125
126
127
128
129
130 public BigDecimal previsaoItemAcao(Long codItem, Long codExercicio) throws ECARException, HibernateException {
131
132 final long INTEGRALIZACAO_CAPITAL_SIM = 53L;
133
134 ArrayList<Long> integralizacaoCapital = new ArrayList<Long>();
135
136 ItemEstruturaIettPPA itemAcao = (ItemEstruturaIettPPA) this.buscar(ItemEstruturaIettPPA.class, codItem);
137
138 Set sisAtributoList = itemAcao.getItemEstruturaSisAtributoIettSatbs();
139 for (Iterator iterator = sisAtributoList.iterator(); iterator.hasNext();) {
140 ItemEstruturaSisAtributoIettSatb sis = (ItemEstruturaSisAtributoIettSatb) iterator.next();
141 if (sis.getSisAtributoSatb().getCodSatb().longValue() == INTEGRALIZACAO_CAPITAL_SIM) {
142 integralizacaoCapital.add(itemAcao.getCodIett());
143 }
144 }
145
146 StringBuilder queryStr = new StringBuilder();
147
148 queryStr.append("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.codIett = :codIett " + "and efiep.itemEstruturaIett.indAtivoIett = 'S' ");
149
150 if (!integralizacaoCapital.isEmpty()) {
151
152 queryStr.append("and efiep.itemEstruturaIett.codIett not in (:listaIntegralizacao) ");
153 }
154
155 Query query = session.createQuery(queryStr.toString());
156
157 query.setLong("codExe", codExercicio.longValue());
158 query.setLong("codIett", codItem.longValue());
159
160 if (!integralizacaoCapital.isEmpty()) {
161 query.setParameterList("listaIntegralizacao", integralizacaoCapital);
162
163
164 }
165
166 query.setMaxResults(1);
167
168 return (BigDecimal) query.uniqueResult();
169
170 }
171
172
173
174
175
176
177
178
179
180
181 public BigDecimal previsaoItem(Long codItem, Long codExercicio) throws ECARException, HibernateException {
182
183 final long INTEGRALIZACAO_CAPITAL_SIM = 53L;
184
185 ArrayList<Long> integralizacaoCapital = new ArrayList<Long>();
186
187 ItemEstruturaIettPPA itemPrograma = (ItemEstruturaIettPPA) this.buscar(ItemEstruturaIettPPA.class, codItem);
188 Set acoes = itemPrograma.getItemEstruturaIetts();
189 for (Iterator iter = acoes.iterator(); iter.hasNext();) {
190 ItemEstruturaIettPPA acao = (ItemEstruturaIettPPA) iter.next();
191
192 Set sisAtributoList = acao.getItemEstruturaSisAtributoIettSatbs();
193 for (Iterator iterator = sisAtributoList.iterator(); iterator.hasNext();) {
194 ItemEstruturaSisAtributoIettSatb sis = (ItemEstruturaSisAtributoIettSatb) iterator.next();
195 if (sis.getSisAtributoSatb().getCodSatb().longValue() == INTEGRALIZACAO_CAPITAL_SIM) {
196 integralizacaoCapital.add(acao.getCodIett());
197 }
198 }
199
200 }
201
202 StringBuilder queryStr = new StringBuilder();
203
204 queryStr.append("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.itemEstruturaIett.codIett = :codIett " + "and efiep.itemEstruturaIett.indAtivoIett = 'S' ");
205
206 if (!integralizacaoCapital.isEmpty()) {
207 queryStr.append("and efiep.itemEstruturaIett.codIett not in (:listaIntegralizacao) ");
208
209 }
210
211 Query query = session.createQuery(queryStr.toString());
212
213 query.setLong("codExe", codExercicio.longValue());
214 query.setLong("codIett", codItem.longValue());
215
216 if (!integralizacaoCapital.isEmpty()) {
217 query.setParameterList("listaIntegralizacao", integralizacaoCapital);
218
219
220 }
221
222 query.setMaxResults(1);
223
224 return (BigDecimal) query.uniqueResult();
225
226 }
227
228
229
230
231
232
233
234
235
236
237
238 public BigDecimal previsaoItemSemIntegralizacao(Long codItem, Long codFonteRecurso, Long codExercicio, Long codRecurso) throws ECARException, HibernateException {
239 Query query = session.createQuery("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.codIett = :codIett " + "and efiep.fonteRecursoFonr.codFonr = :codFonr " + "and efiep.recursoRec.codRec = :codRec " + "and efiep.itemEstruturaIett.indAtivoIett = 'S'");
240
241 query.setLong("codExe", codExercicio.longValue());
242 query.setLong("codIett", codItem.longValue());
243 query.setLong("codFonr", codFonteRecurso.longValue());
244 query.setLong("codRec", codRecurso.longValue());
245 query.setMaxResults(1);
246
247 return (BigDecimal) query.uniqueResult();
248
249 }
250
251
252
253
254
255
256
257
258
259
260
261 public BigDecimal previsaoItem(Long codItem, Long codFonteRecurso, Long codExercicio, Long codRecurso) throws ECARException, HibernateException {
262
263 final long INTEGRALIZACAO_CAPITAL_SIM = 53L;
264
265 ArrayList<Long> integralizacaoCapital = new ArrayList<Long>();
266
267 ItemEstruturaIettPPA itemAcao = (ItemEstruturaIettPPA) this.buscar(ItemEstruturaIettPPA.class, codItem);
268
269 Set sisAtributoList = itemAcao.getItemEstruturaSisAtributoIettSatbs();
270 for (Iterator iterator = sisAtributoList.iterator(); iterator.hasNext();) {
271 ItemEstruturaSisAtributoIettSatb sis = (ItemEstruturaSisAtributoIettSatb) iterator.next();
272 if (sis.getSisAtributoSatb().getCodSatb().longValue() == INTEGRALIZACAO_CAPITAL_SIM) {
273 integralizacaoCapital.add(itemAcao.getCodIett());
274 }
275 }
276
277 StringBuilder queryStr = new StringBuilder();
278
279 queryStr.append("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.codIett = :codIett " + "and efiep.itemEstruturaIett.indAtivoIett = 'S' " + "and efiep.fonteRecursoFonr.codFonr = :codFonr " + "and efiep.recursoRec.codRec = :codRec ");
280
281 if (!integralizacaoCapital.isEmpty()) {
282 queryStr.append("and efiep.itemEstruturaIett.codIett not in (:listaIntegralizacao) ");
283
284 }
285
286 Query query = session.createQuery(queryStr.toString());
287
288 query.setLong("codExe", codExercicio.longValue());
289 query.setLong("codIett", codItem.longValue());
290 query.setLong("codFonr", codFonteRecurso.longValue());
291 query.setLong("codRec", codRecurso.longValue());
292
293 if (!integralizacaoCapital.isEmpty()) {
294 query.setParameterList("listaIntegralizacao", integralizacaoCapital);
295
296
297 }
298
299 query.setMaxResults(1);
300
301 return (BigDecimal) query.uniqueResult();
302
303 }
304
305
306
307
308 public BigDecimal previsaoSomaItensFilhosSemIntegralizacao(Long codItemEstruturaPai, Long codFonteRecurso, Long codExercicio, Long codRecurso) throws ECARException, HibernateException {
309 Query query = session.createQuery("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.itemEstruturaIett.codIett = :codIett " + "and efiep.itemEstruturaIett.indAtivoIett = 'S' " + "and efiep.fonteRecursoFonr.codFonr = :codFonr " + "and efiep.recursoRec.codRec = :codRec ");
310
311 query.setLong("codExe", codExercicio.longValue());
312 query.setLong("codIett", codItemEstruturaPai.longValue());
313 query.setLong("codFonr", codFonteRecurso.longValue());
314 query.setLong("codRec", codRecurso.longValue());
315 query.setMaxResults(1);
316
317 return (BigDecimal) query.uniqueResult();
318 }
319
320
321
322
323
324 public BigDecimal previsaoSomaItensFilhos(Long codItemEstruturaPai, Long codFonteRecurso, Long codExercicio, Long codRecurso) throws ECARException, HibernateException {
325
326 final long INTEGRALIZACAO_CAPITAL_SIM = 53L;
327
328 ArrayList<Long> integralizacaoCapital = new ArrayList<Long>();
329
330 ItemEstruturaIettPPA itemPrograma = (ItemEstruturaIettPPA) this.buscar(ItemEstruturaIettPPA.class, codItemEstruturaPai);
331 Set acoes = itemPrograma.getItemEstruturaIetts();
332 for (Iterator iter = acoes.iterator(); iter.hasNext();) {
333 ItemEstruturaIettPPA acao = (ItemEstruturaIettPPA) iter.next();
334
335 Set sisAtributoList = acao.getItemEstruturaSisAtributoIettSatbs();
336 for (Iterator iterator = sisAtributoList.iterator(); iterator.hasNext();) {
337 ItemEstruturaSisAtributoIettSatb sis = (ItemEstruturaSisAtributoIettSatb) iterator.next();
338 if (sis.getSisAtributoSatb().getCodSatb().longValue() == INTEGRALIZACAO_CAPITAL_SIM) {
339 integralizacaoCapital.add(acao.getCodIett());
340 }
341 }
342
343 }
344
345 StringBuilder queryStr = new StringBuilder();
346
347 queryStr.append("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep " + "where efiep.exercicioExe.codExe = :codExe " + "and efiep.itemEstruturaIett.itemEstruturaIett.codIett = :codIett " + "and efiep.itemEstruturaIett.indAtivoIett = 'S' " + "and efiep.fonteRecursoFonr.codFonr = :codFonr " + "and efiep.recursoRec.codRec = :codRec ");
348
349 if (!integralizacaoCapital.isEmpty()) {
350 queryStr.append("and efiep.itemEstruturaIett.codIett not in (:listaIntegralizacao) ");
351
352
353 }
354
355 Query query = session.createQuery(queryStr.toString());
356
357 query.setLong("codExe", codExercicio.longValue());
358 query.setLong("codIett", codItemEstruturaPai.longValue());
359 query.setLong("codFonr", codFonteRecurso.longValue());
360 query.setLong("codRec", codRecurso.longValue());
361
362 if (!integralizacaoCapital.isEmpty()) {
363 query.setParameterList("listaIntegralizacao", integralizacaoCapital);
364
365
366 }
367
368 query.setMaxResults(1);
369
370 return (BigDecimal) query.uniqueResult();
371 }
372
373
374
375
376
377
378 public void setPK(EfItemEstPrevisaoEfiep itemEstruturaRecurso) {
379 EfItemEstPrevisaoEfiepPK comp_id = new EfItemEstPrevisaoEfiepPK();
380 comp_id.setCodExe(itemEstruturaRecurso.getExercicioExe().getCodExe());
381 comp_id.setCodFonr(itemEstruturaRecurso.getFonteRecursoFonr().getCodFonr());
382 comp_id.setCodIett(itemEstruturaRecurso.getItemEstruturaIett().getCodIett());
383 comp_id.setCodRec(itemEstruturaRecurso.getRecursoRec().getCodRec());
384
385
386 itemEstruturaRecurso.setEspecieEsp(itemEstruturaRecurso.getEspecieEsp());
387 itemEstruturaRecurso.setFonteFon(itemEstruturaRecurso.getFonteFon());
388
389 itemEstruturaRecurso.setComp_id(comp_id);
390 }
391
392
393
394
395
396
397
398
399 public void setItemEstruturaPrevisao(HttpServletRequest request, EfItemEstPrevisaoEfiep itemEstruturaRecurso) throws ECARException {
400 ItemEstruturaIett itemEstrutura = (ItemEstruturaIett) this.buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett")));
401
402
403
404 itemEstruturaRecurso.setExercicioExe((ExercicioExe) super.buscar(ExercicioExe.class, Long.valueOf(Pagina.getParamStr(request, "codExe"))));
405 itemEstruturaRecurso.setFonteRecursoFonr((FonteRecursoFonr) super.buscar(FonteRecursoFonr.class, Long.valueOf(Pagina.getParamStr(request, "codFonr"))));
406 itemEstruturaRecurso.setIndAtivoEfiep("S");
407 itemEstruturaRecurso.setItemEstruturaIett(itemEstrutura);
408 itemEstruturaRecurso.setRecursoRec((RecursoRec) super.buscar(RecursoRec.class, Long.valueOf(Pagina.getParamStr(request, "codRec"))));
409 itemEstruturaRecurso.setValorAprovadoEfiep(new BigDecimal(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorAprovadoEfiep"))).doubleValue()));
410 itemEstruturaRecurso.setValorRevisadoEfiep(new BigDecimal(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorRevisadoEfiep"))).doubleValue()));
411 }
412
413
414
415
416
417
418 public void salvar(EfItemEstPrevisaoEfiep itemEstruturaRecurso) throws ECARException {
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444 setPK(itemEstruturaRecurso);
445 itemEstruturaRecurso.setDataInclusaoEfiep(Data.getDataAtual());
446 try {
447 if (buscar(itemEstruturaRecurso.getItemEstruturaIett().getCodIett(), itemEstruturaRecurso.getFonteRecursoFonr().getCodFonr(), itemEstruturaRecurso.getRecursoRec().getCodRec(), itemEstruturaRecurso.getExercicioExe().getCodExe()) != null)
448 throw new ECARException("itemEstrutura.recurso.inclusao.jaExiste");
449 } catch (ECARException e) {
450 this.logger.error(e);
451 if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
452 super.salvar(itemEstruturaRecurso);
453 }
454 else
455
456 throw e;
457 }
458 }
459
460
461
462
463
464
465 public void excluirRecursos(EfIettFonteTotEfieft fonteRecurso) throws ECARException {
466 Transaction tx = null;
467
468 try {
469 ArrayList objetos = new ArrayList();
470
471 super.inicializarLogBean();
472
473 tx = session.beginTransaction();
474
475 List recursos = getRecursosByFonteRecurso(fonteRecurso.getFonteRecursoFonr().getCodFonr(), fonteRecurso.getItemEstruturaIett().getCodIett(), "");
476 if (recursos != null) {
477 Iterator it = recursos.iterator();
478 while (it.hasNext()) {
479 EfItemEstPrevisaoEfiep recurso = (EfItemEstPrevisaoEfiep) it.next();
480 session.delete(recurso);
481 objetos.add(recurso);
482 }
483 }
484
485 tx.commit();
486
487 if (super.logBean != null) {
488 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
489 super.logBean.setOperacao("EXC");
490 Iterator itObj = objetos.iterator();
491
492 while (itObj.hasNext()) {
493 super.logBean.setObj(itObj.next());
494 super.loggerAuditoria.info(logBean.toString());
495 }
496 }
497 } catch (HibernateException e) {
498 if (tx != null)
499 try {
500 tx.rollback();
501 } catch (HibernateException r) {
502 this.logger.error(r);
503 throw new ECARException("erro.hibernateException");
504 }
505 this.logger.error(e);
506 throw new ECARException("erro.hibernateException");
507 }
508 }
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523 public void excluir(String[] codigosParaExcluir, Long codItemEstrutura) throws ECARException {
524 Transaction tx = null;
525
526 try {
527 ArrayList objetos = new ArrayList();
528
529 super.inicializarLogBean();
530
531 tx = session.beginTransaction();
532
533 for (int i = 0; i < codigosParaExcluir.length; i++) {
534 String[] codigos = codigosParaExcluir[i].split(",");
535 EfItemEstPrevisaoEfiep itemEstruturaRecurso = buscar(codItemEstrutura, Long.valueOf(codigos[0]), Long.valueOf(codigos[1]), Long.valueOf(codigos[2]));
536
537
538 EfItemEstContaEfiec conta = new EfItemEstContaEfiec();
539 conta.setItemEstruturaIett(itemEstruturaRecurso.getItemEstruturaIett());
540 conta.setExercicioExe(itemEstruturaRecurso.getExercicioExe());
541 conta.setRecursoRec(itemEstruturaRecurso.getRecursoRec());
542 List dependentes = this.pesquisar(conta, null);
543
544
545 if (dependentes.size() > 0) {
546
547
548 itemEstruturaRecurso.setIndAtivoEfiep("N");
549 session.update(itemEstruturaRecurso);
550 objetos.add(itemEstruturaRecurso);
551
552 Iterator it = dependentes.iterator();
553 while (it.hasNext()) {
554 EfItemEstContaEfiec contaDependente = (EfItemEstContaEfiec) it.next();
555 contaDependente.setIndAtivoEfiec("N");
556 session.update(contaDependente);
557 objetos.add(contaDependente);
558 throw new ECARException("itemEstrutura.recurso.exclusao.possuiConta");
559 }
560
561 }
562 else {
563
564 session.delete(itemEstruturaRecurso);
565 objetos.add(itemEstruturaRecurso);
566
567 }
568
569 }
570
571 tx.commit();
572
573 if (super.logBean != null) {
574 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
575 super.logBean.setOperacao("ALT_EXC");
576 Iterator itObj = objetos.iterator();
577
578 while (itObj.hasNext()) {
579 super.logBean.setObj(itObj.next());
580 super.loggerAuditoria.info(logBean.toString());
581 }
582 }
583 } catch (HibernateException e) {
584 if (tx != null)
585 try {
586 tx.rollback();
587 } catch (HibernateException r) {
588 this.logger.error(r);
589 throw new ECARException("erro.hibernateException");
590 }
591 this.logger.error(e);
592 throw new ECARException("erro.hibernateException");
593 }
594 }
595
596
597
598
599
600
601
602
603
604 public List getRecursosByFonteRecurso(Long codFonteRecurso, Long codItemEstrutura, String ativo) throws ECARException {
605 EfItemEstPrevisaoEfiep itemEstruturaRecurso = new EfItemEstPrevisaoEfiep();
606 itemEstruturaRecurso.setFonteRecursoFonr((FonteRecursoFonr) super.buscar(FonteRecursoFonr.class, codFonteRecurso));
607 itemEstruturaRecurso.setItemEstruturaIett((ItemEstruturaIett) super.buscar(ItemEstruturaIett.class, codItemEstrutura));
608 if (!"".equals(ativo))
609 itemEstruturaRecurso.setIndAtivoEfiep(ativo);
610 return super.pesquisar(itemEstruturaRecurso, null);
611 }
612
613 public List getRecursosDistintosByFonteRecurso(Long codFonteRecurso, Long codItemEstrutura) throws ECARException {
614 try {
615 StringBuilder sql = new StringBuilder();
616
617 sql.append("select distinct recurso from RecursoRec as recurso ");
618 sql.append("join recurso.efItemEstPrevisaoEfieps as ieRecurso ");
619 sql.append("where ieRecurso.itemEstruturaIett.codIett = :item ");
620 sql.append("and ieRecurso.itemEstruturaIett.indAtivoIett = 'S'");
621 sql.append("and ieRecurso.fonteRecursoFonr.codFonr = :fonte ");
622 sql.append("order by recurso.sequenciaRec asc");
623
624 Query query = this.getSession().createQuery(sql.toString());
625
626 query.setLong("item", codItemEstrutura.longValue());
627 query.setLong("fonte", codFonteRecurso.longValue());
628
629 return query.list();
630 } catch (HibernateException e) {
631 this.logger.error(e);
632 throw new ECARException(e);
633 }
634 }
635
636
637
638
639
640
641
642
643 public List getRecursosDistintosComValoresByFonteRecurso(Long codFonteRecurso, Long codItemEstrutura) throws ECARException {
644 try {
645 StringBuilder sql = new StringBuilder();
646
647 sql.append("select distinct recurso from RecursoRec as recurso ");
648 sql.append("join recurso.efItemEstPrevisaoEfieps as ieRecurso ");
649 sql.append("where ieRecurso.itemEstruturaIett.codIett = :item ");
650 sql.append("and ieRecurso.itemEstruturaIett.indAtivoIett = 'S' ");
651 sql.append("and ieRecurso.fonteRecursoFonr.codFonr = :fonte ");
652 sql.append("and (ieRecurso.valorAprovadoEfiep > 0 or ieRecurso.valorRevisadoEfiep > 0)");
653 sql.append("order by recurso.sequenciaRec asc");
654
655 Query query = this.getSession().createQuery(sql.toString());
656
657 query.setLong("item", codItemEstrutura.longValue());
658 query.setLong("fonte", codFonteRecurso.longValue());
659
660 return query.list();
661 } catch (HibernateException e) {
662 this.logger.error(e);
663 throw new ECARException(e);
664 }
665 }
666
667
668
669
670
671
672
673
674
675
676 public List getRecursosByFonteRecursoExercicio(ItemEstruturaIett itemEstrutura, ExercicioExe exercicio, FonteRecursoFonr fonte) throws ECARException {
677 List retorno = new ArrayList();
678 EfItemEstPrevisaoEfiep recurso = new EfItemEstPrevisaoEfiep();
679 recurso.setItemEstruturaIett(itemEstrutura);
680 recurso.setExercicioExe(exercicio);
681 recurso.setFonteRecursoFonr(fonte);
682 recurso.setIndAtivoEfiep("S");
683 List ieRec = super.pesquisar(recurso, null);
684 if (ieRec != null) {
685 Iterator it = ieRec.iterator();
686 while (it.hasNext()) {
687 retorno.add(((EfItemEstPrevisaoEfiep) it.next()).getRecursoRec());
688 }
689 }
690 return retorno;
691
692 }
693
694
695
696
697
698
699
700
701
702
703 public List getRecursosByFonteRecursoExercicio(Long itemEstrutura, Long exercicio, Long fonte) throws ECARException {
704 ItemEstruturaIett item = (ItemEstruturaIett) this.buscar(ItemEstruturaIett.class, itemEstrutura);
705 ExercicioExe exercicioExe = (ExercicioExe) this.buscar(ExercicioExe.class, exercicio);
706 FonteRecursoFonr fonteRec = (FonteRecursoFonr) this.buscar(FonteRecursoFonr.class, fonte);
707 return this.getRecursosByFonteRecursoExercicio(item, exercicioExe, fonteRec);
708 }
709
710
711
712
713
714
715
716
717
718 public List getListaItemEstruturaPrevisao(ItemEstruturaIett item, ExercicioExe exercicio) throws ECARException {
719 List lista = new ArrayList();
720
721 try {
722
723 StringBuilder sb = new StringBuilder();
724 sb.append("from EfItemEstPrevisaoEfiep efiep ");
725 sb.append(" where ");
726
727 if (exercicio != null) {
728 sb.append("efiep.exercicioExe.codExe = :codExe and ");
729 }
730
731 sb.append(" efiep.itemEstruturaIett.codIett = :codIett ");
732 sb.append(" and efiep.itemEstruturaIett.indAtivoIett = 'S' ");
733 sb.append("order by efiep.fonteRecursoFonr.sequenciaFonr, efiep.recursoRec.sequenciaRec");
734
735 Query query = session.createQuery(sb.toString());
736
737 if (exercicio != null)
738 query.setLong("codExe", exercicio.getCodExe().longValue());
739
740 query.setLong("codIett", item.getCodIett().longValue());
741
742 lista = query.list();
743 } catch (HibernateException e) {
744 this.logger.error(e);
745 throw new ECARException("erro.hibernateException");
746 }
747 return lista;
748 }
749
750
751
752
753
754
755 public List getListaExerciciosItemEstruturaPrevisao(ItemEstruturaIett item) throws ECARException {
756 List lista = new ArrayList();
757
758 try {
759
760 StringBuilder sb = new StringBuilder();
761 sb.append("select distinct efiep.exercicioExe from EfItemEstPrevisaoEfiep efiep ");
762 sb.append(" where ");
763 sb.append(" efiep.itemEstruturaIett.codIett = :codIett and ");
764 sb.append(" efiep.itemEstruturaIett.indAtivoIett = 'S' ");
765 sb.append("order by efiep.exercicioExe.dataInicialExe");
766
767 Query query = session.createQuery(sb.toString());
768
769 query.setLong("codIett", item.getCodIett().longValue());
770
771 lista = query.list();
772 } catch (HibernateException e) {
773 this.logger.error(e);
774 throw new ECARException("erro.hibernateException");
775 }
776 return lista;
777 }
778
779
780
781
782
783
784
785
786
787
788
789 public BigDecimal previsaoSomaValores(Long codItem, Long codFonteRecurso, Long codExercicio, Long codRecurso, String tipo) throws ECARException, HibernateException {
790
791 StringBuilder select = new StringBuilder();
792
793 if (Dominios.EFIEP_VALOR_APROVADO.equals(tipo)) {
794 select.append("select sum(efiep.valorAprovadoEfiep) from EfItemEstPrevisaoEfiep efiep ");
795 }
796 if (Dominios.EFIEP_VALOR_REVISADO.equals(tipo)) {
797 select.append("select sum(efiep.valorRevisadoEfiep) from EfItemEstPrevisaoEfiep efiep ");
798 }
799
800 select.append("where efiep.exercicioExe.codExe = :codExe ");
801 select.append(" and efiep.itemEstruturaIett.codIett = :codIett ");
802 select.append(" and efiep.itemEstruturaIett.indAtivoIett = 'S' ");
803 select.append(" and efiep.fonteRecursoFonr.codFonr = :codFonr ");
804 select.append("and efiep.recursoRec.codRec = :codRec ");
805
806 Query query = session.createQuery(select.toString());
807
808 query.setLong("codExe", codExercicio.longValue());
809 query.setLong("codIett", codItem.longValue());
810 query.setLong("codFonr", codFonteRecurso.longValue());
811 query.setLong("codRec", codRecurso.longValue());
812 query.setMaxResults(1);
813
814 return (BigDecimal) query.uniqueResult();
815 }
816 }