1
2
3
4 package ecar.dao;
5
6 import java.util.ArrayList;
7 import java.util.Iterator;
8 import java.util.List;
9 import java.util.Set;
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
19 import ecar.exception.ECARException;
20 import ecar.pojo.CriterioCri;
21 import ecar.pojo.ItemEstrutCriterioIettc;
22 import ecar.pojo.ItemEstrutCriterioIettcPK;
23 import ecar.pojo.ItemEstruturaIett;
24 import ecar.pojo.UsuarioUsu;
25
26
27
28
29 public class ItemEstruturaCriterioDao extends Dao {
30
31 public ItemEstruturaCriterioDao(HttpServletRequest request) {
32 super();
33 this.request = request;
34 }
35
36
37
38
39
40
41
42
43
44 public ItemEstrutCriterioIettc buscar(Long codItemEstrutura, Long codCriterio) throws ECARException {
45 ItemEstrutCriterioIettcPK pk = new ItemEstrutCriterioIettcPK();
46 pk.setCodCri(codCriterio);
47 pk.setCodIett(codItemEstrutura);
48 return (ItemEstrutCriterioIettc) super.buscar(ItemEstrutCriterioIettc.class, pk);
49 }
50
51
52
53
54
55
56
57
58
59
60
61 public void salvar(Long codCriterio, Long codItemEstrutura, UsuarioUsu usuario) throws ECARException {
62 try {
63 if (this.buscar(codItemEstrutura, codCriterio) != null) {
64 throw new ECARException("itemEstrutura.criterio.inclusao.jaExiste");
65 }
66 } catch (ECARException e) {
67 this.logger.error(e);
68 if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
69
70 ItemEstrutCriterioIettcPK pk = new ItemEstrutCriterioIettcPK();
71 pk.setCodCri(codCriterio);
72 pk.setCodIett(codItemEstrutura);
73 ItemEstrutCriterioIettc ieCriterio = new ItemEstrutCriterioIettc();
74 ieCriterio.setComp_id(pk);
75 ieCriterio.setCriterioCri((CriterioCri) super.buscar(CriterioCri.class, codCriterio));
76 ieCriterio.setItemEstruturaIett((ItemEstruturaIett) super.buscar(ItemEstruturaIett.class, codItemEstrutura));
77
78
79 ieCriterio.setDataUltManutencao(Data.getDataAtual());
80 ieCriterio.setUsuManutencao(usuario);
81
82 super.salvar(ieCriterio);
83 }
84 else
85 throw e;
86 }
87
88 }
89
90
91
92
93
94
95
96
97
98 public void excluir(String[] codCriterio, Long codItemEstrutura, UsuarioUsu usuario) throws ECARException {
99 Transaction tx = null;
100
101 try {
102 ArrayList objetos = new ArrayList();
103
104 super.inicializarLogBean();
105
106 tx = session.beginTransaction();
107
108 ItemEstrutCriterioIettc criterio;
109 for (int i = 0; i < codCriterio.length; i++) {
110
111
112
113
114
115 criterio = this.buscar(codItemEstrutura, Long.valueOf(codCriterio[i]));
116 criterio.setDataUltManutencao(Data.getDataAtual());
117 criterio.setUsuManutencao(usuario);
118 criterio.setIndExclusaoPosHistorico(Boolean.TRUE);
119 session.update(criterio);
120
121
122
123 }
124
125 tx.commit();
126
127 if (super.logBean != null) {
128 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
129 super.logBean.setOperacao("EXC");
130 Iterator itObj = objetos.iterator();
131
132 while (itObj.hasNext()) {
133 super.logBean.setObj(itObj.next());
134 super.loggerAuditoria.info(logBean.toString());
135 }
136 }
137 } catch (HibernateException e) {
138 if (tx != null)
139 try {
140 tx.rollback();
141 } catch (HibernateException r) {
142 this.logger.error(r);
143 throw new ECARException("erro.hibernateException");
144 }
145 this.logger.error(e);
146 throw new ECARException("erro.hibernateException");
147 }
148 }
149
150
151
152
153
154
155 public List listarCriterios(ItemEstruturaIett itemEstrutura) throws ECARException {
156 List retorno = new ArrayList();
157 if (itemEstrutura.getItemEstrutCriterioIettcs() != null) {
158 Set crit = itemEstrutura.getItemEstrutCriterioIettcs();
159 Iterator it = this.ordenaSet(crit, "this.criterioCri.descricaoCri", "asc").iterator();
160 while (it.hasNext()) {
161 ItemEstrutCriterioIettc itemCriterio = (ItemEstrutCriterioIettc) it.next();
162 retorno.add(itemCriterio.getCriterioCri());
163 }
164 }
165 return retorno;
166 }
167
168
169
170
171
172
173
174
175
176
177 public boolean verificarCriterio(ItemEstruturaIett itemEstrutura, List idCriteriosCom, List idCriteriosSem) throws ECARException {
178 boolean existemCriteriosCom = (idCriteriosCom != null && idCriteriosCom.size() > 0);
179 boolean existemCriteriosSem = (idCriteriosSem != null && idCriteriosSem.size() > 0);
180
181 if (itemEstrutura.getItemEstrutCriterioIettcs() != null) {
182 boolean criterioExisteListaCom = false;
183 boolean criterioExisteListaSem = false;
184
185 List codCriteriosIett = new ArrayList();
186
187 Iterator itCriterios = itemEstrutura.getItemEstrutCriterioIettcs().iterator();
188 while (itCriterios.hasNext()) {
189 ItemEstrutCriterioIettc itemCriterio = (ItemEstrutCriterioIettc) itCriterios.next();
190 String codigoCriterio = itemCriterio.getComp_id().getCodCri().toString();
191 codCriteriosIett.add(codigoCriterio);
192 }
193
194 if (codCriteriosIett.containsAll(idCriteriosCom)) {
195 criterioExisteListaCom = true;
196 }
197
198 if (codCriteriosIett.containsAll(idCriteriosSem)) {
199 criterioExisteListaSem = true;
200 }
201
202 if (existemCriteriosCom && existemCriteriosSem) {
203 if (criterioExisteListaCom && !criterioExisteListaSem) {
204 return true;
205 }
206 }
207 else if (existemCriteriosCom) {
208 if (criterioExisteListaCom) {
209 return true;
210 }
211 }
212 else if (existemCriteriosSem) {
213 if (!criterioExisteListaSem) {
214 return true;
215 }
216 }
217 }
218 return false;
219 }
220
221 }