View Javadoc

1   /*
2    * Criado em 13/12/2004
3    */
4   package ecar.dao;
5   
6   import java.util.ArrayList;
7   import java.util.Date;
8   import java.util.Iterator;
9   
10  import javax.servlet.http.HttpServletRequest;
11  
12  import org.hibernate.HibernateException;
13  import org.hibernate.Transaction;
14  
15  import comum.database.Dao;
16  import comum.util.Data;
17  import comum.util.Pagina;
18  
19  import ecar.exception.ECARException;
20  import ecar.pojo.EntidadeEnt;
21  import ecar.pojo.ItemEstrutEntidadeIette;
22  import ecar.pojo.ItemEstrutEntidadeIettePK;
23  import ecar.pojo.ItemEstruturaIett;
24  import ecar.pojo.TipoParticipacaoTpp;
25  import ecar.pojo.UsuarioUsu;
26  
27  /**
28   * @author evandro
29   */
30  public class ItemEstrutEntidadeDao extends Dao {
31    /**
32     * Construtor. Chama o Session factory do Hibernate
33     */
34    public ItemEstrutEntidadeDao(HttpServletRequest request) {
35      super();
36      this.request = request;
37    }
38  
39    /**
40     * Recebe o código de item estrutura e um array contendo códigos de entidades
41     * e de tipoParticipacao e exclui todos os registros que relacioname este item
42     * estrutura com cada um dos códigosEntidade
43     * @param codigosParaExcluir
44     * @param codItemEstrutura
45     * @throws ECARException
46     */
47    public void excluir(String[] codigosParaExcluir, Long codItemEstrutura, UsuarioUsu usuarioUsu) throws ECARException {
48      Transaction tx = null;
49  
50      try {
51        ArrayList objetos = new ArrayList();
52  
53        super.inicializarLogBean();
54  
55        tx = session.beginTransaction();
56  
57        for (int i = 0; i < codigosParaExcluir.length; i++) {
58          // Separar os códigos formato "codEnt,codTpp" - tirar a virgula entre e
59          // eles
60          String separaCod[] = codigosParaExcluir[i].split(",");
61  
62          ItemEstrutEntidadeIettePK chave = new ItemEstrutEntidadeIettePK(codItemEstrutura, Long.valueOf(separaCod[0]), Long.valueOf(separaCod[1]));
63          ItemEstrutEntidadeIette itemEstrutEntidade = (ItemEstrutEntidadeIette) buscar(ItemEstrutEntidadeIette.class, chave);
64  
65          itemEstrutEntidade.setUsuarioUsuManutencao(usuarioUsu);
66          itemEstrutEntidade.setDataUltManutencaoIette(new Date());
67          itemEstrutEntidade.setIndExclusaoPosHistorico(Boolean.TRUE);
68  
69          session.update(itemEstrutEntidade);
70          objetos.add(itemEstrutEntidade);
71        }
72  
73        tx.commit();
74  
75        if (super.logBean != null) {
76          super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
77          super.logBean.setOperacao("EXC");
78          Iterator itObj = objetos.iterator();
79  
80          while (itObj.hasNext()) {
81            super.logBean.setObj(itObj.next());
82            super.loggerAuditoria.info(logBean.toString());
83          }
84        }
85      } catch (HibernateException e) {
86        if (tx != null)
87          try {
88            tx.rollback();
89          } catch (HibernateException r) {
90            this.logger.error(r);
91            throw new ECARException("erro.hibernateException");
92          }
93        this.logger.error(e);
94        throw new ECARException("erro.hibernateException");
95      }
96    }
97  
98    /**
99     * Cria um objeto itemEstrutEntidade a partir de parâmetros passados no objeto
100    * request
101    * @param request
102    * @param itemEstrutEntidade
103    * @throws ECARException
104    */
105   public void setItemEstrutEntidade(HttpServletRequest request, ItemEstrutEntidadeIette itemEstrutEntidade) throws ECARException {
106     itemEstrutEntidade.setItemEstruturaIett((ItemEstruturaIett) this.buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett"))));
107     itemEstrutEntidade.setEntidadeEnt((EntidadeEnt) new EntidadeDao(request).buscar(EntidadeEnt.class, Long.valueOf(Pagina.getParamStr(request, "codEnt"))));
108     itemEstrutEntidade.setTipoParticipacaoTpp((TipoParticipacaoTpp) new TipoParticipacaoDao(request).buscar(TipoParticipacaoTpp.class, Long.valueOf(Pagina.getParamStr(request, "codTpp"))));
109     itemEstrutEntidade.setDescricaoIette(Pagina.getParamStr(request, "descricaoIette"));
110 
111     if (!"".equals(Pagina.getParamStr(request, "dataInicioIette"))) {
112       itemEstrutEntidade.setDataInicioIette(Data.parseDate(Pagina.getParam(request, "dataInicioIette")));
113     }
114     else {
115       itemEstrutEntidade.setDataInicioIette(null);
116     }
117 
118     if (!"".equals(Pagina.getParamStr(request, "dataFimIette"))) {
119       itemEstrutEntidade.setDataFimIette(Data.parseDate(Pagina.getParam(request, "dataFimIette")));
120     }
121     else {
122       itemEstrutEntidade.setDataFimIette(null);
123     }
124   }
125 
126   /**
127    * Método utilizado para setar os valores da PK da classe
128    * @author n/c
129    * @param itemEstrutEntidade
130    */
131   public void setPK(ItemEstrutEntidadeIette itemEstrutEntidade) {
132     ItemEstrutEntidadeIettePK chave = new ItemEstrutEntidadeIettePK();
133 
134     chave.setCodIett(itemEstrutEntidade.getItemEstruturaIett().getCodIett());
135     chave.setCodEnt(itemEstrutEntidade.getEntidadeEnt().getCodEnt());
136     chave.setCodTpp(itemEstrutEntidade.getTipoParticipacaoTpp().getCodTpp());
137 
138     itemEstrutEntidade.setComp_id(chave);
139   }
140 
141   /**
142    * Grava uma relação entre itemEstrutura e Entidade
143    * @author n/c
144    * @param itemEstruturaEntidade
145    * @throws ECARException
146    */
147   public void salvar(ItemEstrutEntidadeIette itemEstrutEntidade) throws ECARException {
148     setPK(itemEstrutEntidade);
149     try {
150       if (buscar(ItemEstrutEntidadeIette.class, itemEstrutEntidade.getComp_id()) != null)
151         throw new ECARException("itemEstrutura.entidade.inclusao.jaExiste");
152     } catch (ECARException e) {
153       this.logger.error(e);
154       if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
155         super.salvar(itemEstrutEntidade);
156       }
157       else
158         /* joga para frente a inclusao.jaExiste */
159         throw e;
160     }
161   }
162 
163   /**
164    * Retorna um objeto ItemEstrutEntidade a partir dos códigos
165    * @author n/c
166    * @param codItemEstrutura
167    * @param codEntidade
168    * @param codTipoParticipacao
169    * @return ItemEstrutEntidadeIette
170    * @throws ECARException
171    */
172   public ItemEstrutEntidadeIette buscar(Long codIett, Long codEnt, Long codTpp) throws ECARException {
173     ItemEstrutEntidadeIettePK chave = new ItemEstrutEntidadeIettePK();
174 
175     chave.setCodEnt(codEnt);
176     chave.setCodIett(codIett);
177     chave.setCodTpp(codTpp);
178 
179     return (ItemEstrutEntidadeIette) super.buscar(ItemEstrutEntidadeIette.class, chave);
180   }
181 }