View Javadoc

1   /*
2    * Criado em 14/12/2004
3    */
4   package ecar.dao;
5   
6   import java.math.BigDecimal;
7   import java.util.ArrayList;
8   import java.util.Date;
9   import java.util.Iterator;
10  
11  import javax.servlet.http.HttpServletRequest;
12  
13  import org.hibernate.HibernateException;
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.BeneficiarioBnf;
23  import ecar.pojo.ItemEstrtBenefIettb;
24  import ecar.pojo.ItemEstrtBenefIettbPK;
25  import ecar.pojo.ItemEstruturaIett;
26  import ecar.pojo.UsuarioUsu;
27  import ecar.util.Dominios;
28  
29  /**
30   * @author felipev
31   */
32  public class ItemEstruturaBeneficiarioDao extends Dao {
33    /* private BeneficiarioDao beneficiarioDao = null; */
34  
35    public ItemEstruturaBeneficiarioDao(HttpServletRequest request) {
36      super();
37      this.request = request;
38      /* beneficiarioDao = new BeneficiarioDao(request); */
39    }
40  
41    /**
42     * Retorna um objeto ItemEstrtBenefIettb a partir do código do Item da
43     * Estrutura e do código do beneficiário
44     * @param codItemEstrutura
45     * @param codBeneficiario
46     * @return
47     * @throws ECARException
48     */
49    public ItemEstrtBenefIettb buscar(Long codItemEstrutura, Long codBeneficiario) throws ECARException {
50      ItemEstrtBenefIettbPK comp_id = new ItemEstrtBenefIettbPK();
51      comp_id.setCodBnf(codBeneficiario);
52      comp_id.setCodIett(codItemEstrutura);
53      return (ItemEstrtBenefIettb) super.buscar(ItemEstrtBenefIettb.class, comp_id);
54    }
55  
56    /**
57     * Cria um objeto itemEstruturaBeneficiario a partir de parâmetros passados no
58     * objeto request
59     * @param request
60     * @param itemEstruturaBeneficiario
61     * @throws ECARException
62     */
63    public void setItemEstruturaBeneficiario(HttpServletRequest request, ItemEstrtBenefIettb itemEstruturaBeneficiario) throws ECARException {
64      ItemEstruturaIett itemEstrutura = (ItemEstruturaIett) this.buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett")));
65      itemEstruturaBeneficiario.setBeneficiarioBnf((BeneficiarioBnf) new BeneficiarioDao(request).buscar(BeneficiarioBnf.class, Long.valueOf(Pagina.getParamStr(request, "codBnf"))));
66      itemEstruturaBeneficiario.setItemEstruturaIett(itemEstrutura);
67      itemEstruturaBeneficiario.setComentarioIettb(Pagina.getParamStr(request, "comentarioIEttB"));
68      if (Pagina.getParamStr(request, "qtdePrevistaIEttB") != null)
69        itemEstruturaBeneficiario.setQtdPrevistaIettb(new BigDecimal(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "qtdePrevistaIEttB"))).doubleValue()));
70      itemEstruturaBeneficiario.setDataUltManutencaoIettb(Data.getDataAtual());
71    }
72  
73    /**
74     * Método utilizado para setar os valores da PK da classe
75     * ItemEStruturaBeneficiario
76     * @param itemEstruturaBeneficiario
77     */
78    public void setPK(ItemEstrtBenefIettb itemEstruturaBeneficiario) {
79      ItemEstrtBenefIettbPK comp_id = new ItemEstrtBenefIettbPK();
80      comp_id.setCodBnf(itemEstruturaBeneficiario.getBeneficiarioBnf().getCodBnf());
81      comp_id.setCodIett(itemEstruturaBeneficiario.getItemEstruturaIett().getCodIett());
82      itemEstruturaBeneficiario.setComp_id(comp_id);
83    }
84  
85    /**
86     * Grava uma relação entre itemEstrutura e Beneficiário
87     * @param itemEstruturaBeneficiario
88     * @throws ECARException
89     */
90    public void salvar(ItemEstrtBenefIettb itemEstruturaBeneficiario) throws ECARException {
91      setPK(itemEstruturaBeneficiario);
92      try {
93        if (buscar(itemEstruturaBeneficiario.getItemEstruturaIett().getCodIett(), itemEstruturaBeneficiario.getBeneficiarioBnf().getCodBnf()) != null)
94          throw new ECARException("itemEstrutura.beneficiario.inclusao.jaExiste");
95      } catch (ECARException e) {
96        this.logger.error(e);
97        if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
98          super.salvar(itemEstruturaBeneficiario);
99        }
100       else
101         /* joga para frente a inclusao.jaExiste */
102         throw e;
103     }
104   }
105 
106   /**
107    * Altera os atributos de uma relação entre ItemEstrutura e Beneficiário
108    * @param itemEstruturaBeneficiario
109    * @throws ECARException
110    */
111   public void alterar(ItemEstrtBenefIettb itemEstruturaBeneficiario) throws ECARException {
112     super.alterar(itemEstruturaBeneficiario);
113   }
114 
115   /**
116    * Recebe um código de item estrutura e um array contendo códigos de
117    * beneficiários e exclui todos os registros que relacioname este item
118    * estrutura com caada um dos códigos de beneficiários
119    * @param codigosParaExcluir
120    * @param codItemEstrutura
121    * @throws ECARException
122    */
123   public void excluir(String[] codigosParaExcluir, Long codItemEstrutura, UsuarioUsu usuarioUsu) throws ECARException {
124     Transaction tx = null;
125 
126     try {
127       ArrayList objetos = new ArrayList();
128 
129       super.inicializarLogBean();
130 
131       tx = session.beginTransaction();
132 
133       for (int i = 0; i < codigosParaExcluir.length; i++) {
134         ItemEstrtBenefIettb itemEstruturaBenef = buscar(codItemEstrutura, Long.valueOf(codigosParaExcluir[i]));
135 
136         itemEstruturaBenef.setUsuarioUsuManutencao(usuarioUsu);
137         itemEstruturaBenef.setDataUltManutencaoIettb(new Date());
138         itemEstruturaBenef.setIndExclusaoPosHistorico(Boolean.TRUE);
139 
140         session.update(itemEstruturaBenef);
141         objetos.add(itemEstruturaBenef);
142       }
143 
144       tx.commit();
145 
146       if (super.logBean != null) {
147         super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
148         super.logBean.setOperacao("EXC");
149         Iterator itObj = objetos.iterator();
150 
151         while (itObj.hasNext()) {
152           super.logBean.setObj(itObj.next());
153           super.loggerAuditoria.info(logBean.toString());
154         }
155       }
156     } catch (HibernateException e) {
157       if (tx != null)
158         try {
159           tx.rollback();
160         } catch (HibernateException r) {
161           this.logger.error(r);
162           throw new ECARException("erro.hibernateException");
163         }
164       this.logger.error(e);
165       throw new ECARException("erro.hibernateException");
166     }
167   }
168 }