View Javadoc

1   /*
2    * Criado em 25/01/2004
3    */
4   package ecar.dao;
5   
6   import java.util.ArrayList;
7   import java.util.Date;
8   import java.util.Iterator;
9   import java.util.List;
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  
20  import ecar.exception.ECARException;
21  import ecar.pojo.ItemEstrutLocalIettl;
22  import ecar.pojo.ItemEstrutLocalIettlPK;
23  import ecar.pojo.ItemEstruturaIett;
24  import ecar.pojo.LocalItemLit;
25  import ecar.pojo.UsuarioUsu;
26  
27  /**
28   * @author evandro
29   */
30  public class ItemEstrutLocalDao extends Dao {
31  
32    /*
33     * private LocalItemDao localItemDao = null; private ItemEstruturaDao
34     * itemEstruturaDao = null;
35     */
36  
37    /**
38     * Construtor. Chama o Session factory do Hibernate
39     */
40    public ItemEstrutLocalDao(HttpServletRequest request) {
41      super();
42      this.request = request;
43      /*
44       * localItemDao = new LocalItemDao(request); itemEstruturaDao = new
45       * ItemEstruturaDao(request);
46       */
47    }
48  
49    /**
50     * Cria um objeto itemEstrutLocal a partir de parâmetros passados no objeto
51     * request
52     * @author n/c
53     * @param request
54     * @param itemEstrutLocal
55     * @throws ECARException
56     */
57    public void setItemEstrutLocal(HttpServletRequest request, ItemEstrutLocalIettl itemEstrutLocal) throws ECARException {
58      itemEstrutLocal.setItemEstruturaIett((ItemEstruturaIett) this.buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett"))));
59      itemEstrutLocal.setLocalItemLit((LocalItemLit) new LocalItemDao(request).buscar(LocalItemLit.class, Long.valueOf(Pagina.getParamStr(request, "codLit"))));
60    }
61  
62    /**
63     * Método utilizado para setar os valores da PK da classe
64     * @author n/c
65     * @param itemEstrutLocal
66     */
67    public void setPK(ItemEstrutLocalIettl itemEstrutLocal) {
68      ItemEstrutLocalIettlPK chave = new ItemEstrutLocalIettlPK();
69  
70      chave.setCodIett(itemEstrutLocal.getItemEstruturaIett().getCodIett());
71      chave.setCodLit(itemEstrutLocal.getLocalItemLit().getCodLit());
72  
73      itemEstrutLocal.setComp_id(chave);
74    }
75  
76    /**
77     * Grava uma relação entre itemEstrutura e LocalItem
78     * @author n/c
79     * @param itemEstrutLocal
80     * @throws ECARException
81     */
82    public void salvar(ItemEstrutLocalIettl itemEstrutLocal) throws ECARException {
83      setPK(itemEstrutLocal);
84      try {
85        if (buscar(ItemEstrutLocalIettl.class, itemEstrutLocal.getComp_id()) != null)
86          throw new ECARException("itemEstrutura.localItem.inclusao.jaExiste");
87      } catch (ECARException e) {
88        if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
89          super.salvar(itemEstrutLocal);
90        }
91        else {
92          this.logger.error(e);
93          /* joga para frente a inclusao.jaExiste */
94          throw e;
95        }
96      }
97    }
98  
99    /**
100    * Recebe o código de item estrutura e um array contendo códigos de locais e
101    * exclui todos os registros que relacionam este item estrutura com cada um
102    * dos códigosLocalItem
103    * @author n/c
104    * @param codigosParaExcluir
105    * @param codItemEstrutura
106    * @throws ECARException
107    */
108   public void excluir(String[] codigosParaExcluir, Long codItemEstrutura, UsuarioUsu usuarioUsu) throws ECARException {
109     Transaction tx = null;
110 
111     try {
112       ArrayList objetos = new ArrayList();
113 
114       super.inicializarLogBean();
115 
116       tx = session.beginTransaction();
117 
118       for (int i = 0; i < codigosParaExcluir.length; i++) {
119         ItemEstrutLocalIettlPK chave = new ItemEstrutLocalIettlPK(Long.valueOf(codigosParaExcluir[i]), codItemEstrutura);
120         ItemEstrutLocalIettl itemEstrutLocal = (ItemEstrutLocalIettl) buscar(ItemEstrutLocalIettl.class, chave);
121 
122         itemEstrutLocal.setUsuarioUsuManutencao(usuarioUsu);
123         itemEstrutLocal.setIndExclusaoPosHistorico(Boolean.TRUE);
124 
125         session.update(itemEstrutLocal);
126         objetos.add(itemEstrutLocal);
127       }
128 
129       tx.commit();
130 
131       if (super.logBean != null) {
132         super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
133         super.logBean.setOperacao("EXC");
134         Iterator itObj = objetos.iterator();
135 
136         while (itObj.hasNext()) {
137           super.logBean.setObj(itObj.next());
138           super.loggerAuditoria.info(logBean.toString());
139         }
140       }
141     } catch (HibernateException e) {
142       if (tx != null)
143         try {
144           tx.rollback();
145         } catch (HibernateException r) {
146           this.logger.error(r);
147           throw new ECARException("erro.hibernateException");
148         }
149       this.logger.error(e);
150       throw new ECARException("erro.hibernateException");
151     }
152   }
153 
154   /**
155    * Recebe o código de item estrutura e um array contendo códigos de locais e
156    * exclui todos os registros que relacionam este item estrutura com cada um
157    * dos códigosLocalItem
158    * @param codigosParaExcluir
159    * @param codItemEstrutura
160    * @throws ECARException
161    */
162   public String getAbrangencia(Long codItemEstrutura) throws ECARException {
163     ItemEstruturaIett itemEstrutura = new ItemEstruturaIett();
164     ItemEstrutLocalIettl itemEstrutLocal = new ItemEstrutLocalIettl();
165 
166     itemEstrutura = (ItemEstruturaIett) new ItemEstruturaDao(request).buscar(ItemEstruturaIett.class, codItemEstrutura);
167     List lista = new ItemEstruturaDao(request).ordenaSet(itemEstrutura.getItemEstrutLocalIettls(), "this.localItemLit.identificacaoLit", "asc");
168     Iterator it = lista.iterator();
169 
170     if (it.hasNext()) {
171       itemEstrutLocal = (ItemEstrutLocalIettl) it.next();
172       return itemEstrutLocal.getLocalItemLit().getLocalGrupoLgp().getIdentificacaoLgp();
173     }
174     else {
175       return "";
176     }
177 
178   }
179 }