1
2
3
4 package ecar.dao;
5
6 import java.util.ArrayList;
7 import java.util.List;
8
9 import javax.servlet.http.HttpServletRequest;
10
11 import org.hibernate.Criteria;
12 import org.hibernate.criterion.Restrictions;
13
14 import comum.database.Dao;
15 import comum.util.Pagina;
16
17 import ecar.exception.ECARException;
18 import ecar.pojo.AtributosAtb;
19 import ecar.pojo.SisGrupoAtributoSga;
20
21
22
23
24 public class AtributoDao extends Dao {
25
26
27
28
29 public AtributoDao(HttpServletRequest request) {
30 super();
31 this.request = request;
32 }
33
34
35
36
37
38
39 public List getAtributosNaoOpcionais() throws ECARException {
40 List retorno = new ArrayList();
41
42 AtributosAtb atributo = new AtributosAtb();
43
44 atributo.setIndAtivoAtb("S");
45 atributo.setIndOpcionalAtb("N");
46
47 retorno = this.pesquisar(atributo, null);
48
49 return retorno;
50 }
51
52
53
54
55
56 public List getAtributosOpcionais() throws ECARException {
57 List retorno = new ArrayList();
58
59 AtributosAtb atributo = new AtributosAtb();
60
61 atributo.setIndAtivoAtb("S");
62 atributo.setIndOpcionalAtb("S");
63
64 retorno = this.pesquisar(atributo, null);
65
66 return retorno;
67 }
68
69
70
71
72
73
74
75 public void excluir(AtributosAtb atributo) throws ECARException {
76 try {
77 boolean excluir = true;
78
79 if (contar(atributo.getEstruturaAtributoEttats()) > 0) {
80 excluir = false;
81 throw new ECARException("atributo.exclusao.erro.estruturaAtributoEttats");
82 }
83 if (excluir)
84 super.excluir(atributo);
85 } catch (ECARException e) {
86 this.logger.error(e);
87 throw e;
88 }
89 }
90
91 public void salvar(AtributosAtb atributo) throws ECARException {
92
93 if (pesquisarDuplos(atributo, new String[] { "nomeAtb", "labelPadraoAtb" }, "codAtb").size() > 0)
94 throw new ECARException("atributo.validacao.registroDuplicado");
95
96 if (atributo.getIndAtivoAtb() != null && "S".equals(atributo.getIndAtivoAtb())) {
97 if (pesquisarDuplosAtributosAtb(atributo, atributo.getSisGrupoAtributoSga(), atributo.getIndAtivoAtb()))
98 throw new ECARException("atributo.validacao.registroDuplicadoAtivo");
99 }
100
101 super.salvar(atributo);
102 }
103
104 public void alterar(AtributosAtb atributo) throws ECARException {
105
106 if (pesquisarDuplos(atributo, new String[] { "nomeAtb", "labelPadraoAtb" }, "codAtb").size() > 0)
107 throw new ECARException("atributo.validacao.registroDuplicado");
108
109 if (atributo.getIndAtivoAtb() != null && "S".equals(atributo.getIndAtivoAtb())) {
110 if (pesquisarDuplosAtributosAtb(atributo, atributo.getSisGrupoAtributoSga(), atributo.getIndAtivoAtb()))
111 throw new ECARException("atributo.validacao.registroDuplicadoAtivo");
112 }
113
114 super.alterar(atributo);
115 }
116
117 public boolean pesquisarDuplosAtributosAtb(AtributosAtb obj, SisGrupoAtributoSga sisGrupo, String indAtivoAtb) throws ECARException {
118
119 boolean retorno = false;
120
121 try {
122
123 Criteria crits = session.createCriteria(AtributosAtb.class);
124
125 crits.add(Restrictions.eq("sisGrupoAtributoSga.codSga", (sisGrupo == null ? 0L : sisGrupo.getCodSga())));
126 crits.add(Restrictions.eq("indAtivoAtb", indAtivoAtb));
127 crits.add(Restrictions.ne("codAtb", (obj.getCodAtb() == null ? 0L : obj.getCodAtb())));
128
129
130 List<AtributosAtb> lista = (List<AtributosAtb>) crits.list();
131
132 if (lista.size() > 0) {
133 retorno = true;
134 }
135
136 return retorno;
137
138 } catch (Exception e) {
139 this.logger.error(e);
140 throw new ECARException("erro.hibernateException");
141 }
142 }
143
144 public void setAtributosAtb(HttpServletRequest request, AtributosAtb atributo, boolean usarGetParamStr) {
145
146 if (Pagina.getParam(request, "codigo") != null)
147 atributo.setCodAtb(Long.valueOf(Pagina.getParam(request, "codigo")));
148 else
149 atributo.setCodAtb(null);
150
151 if (usarGetParamStr) {
152 atributo.setNomeAtb(Pagina.getParamStr(request, "nomeAtb").trim());
153 atributo.setLabelPadraoAtb(Pagina.getParamStr(request, "labelPadraoAtb").trim());
154 atributo.setCodFkAtb(Pagina.getParamStr(request, "codFkAtb").trim());
155 atributo.setNomeFkAtb(Pagina.getParamStr(request, "nomeFkAtb").trim());
156 atributo.setIndAtivoAtb(Pagina.getParamOrDefault(request, "indAtivoAtb", Pagina.NAO));
157 atributo.setIndExclusivoEstruturaAtb(Pagina.getParamOrDefault(request, "indExclusivoEstruturaAtb", Pagina.NAO));
158 atributo.setIndOpcionalAtb(Pagina.getParamOrDefault(request, "indOpcionalAtb", Pagina.NAO));
159 atributo.setDocumentacaoAtb(Pagina.getParamStr(request, "documentacaoAtb").trim());
160 }
161 else {
162 atributo.setNomeAtb(Pagina.getParam(request, "nomeAtb"));
163 atributo.setLabelPadraoAtb(Pagina.getParam(request, "labelPadraoAtb"));
164 atributo.setCodFkAtb(Pagina.getParam(request, "codFkAtb"));
165 atributo.setNomeFkAtb(Pagina.getParam(request, "nomeFkAtb"));
166 atributo.setIndAtivoAtb(Pagina.getParam(request, "indAtivoAtb"));
167 atributo.setIndExclusivoEstruturaAtb(Pagina.getParam(request, "indExclusivoEstruturaAtb"));
168 atributo.setIndOpcionalAtb(Pagina.getParam(request, "indOpcionalAtb"));
169 atributo.setDocumentacaoAtb(Pagina.getParam(request, "documentacaoAtb"));
170 }
171 }
172 }