View Javadoc

1   /*
2    * Criado em 02/12/2004
3    */
4   package ecar.dao;
5   
6   import java.util.HashSet;
7   import java.util.Iterator;
8   import java.util.List;
9   
10  import javax.servlet.http.HttpServletRequest;
11  
12  import org.hibernate.HibernateException;
13  
14  import comum.database.Dao;
15  import comum.util.Pagina;
16  
17  import ecar.exception.ECARException;
18  import ecar.pojo.ConfigMailCfgm;
19  import ecar.pojo.ConfiguracaoCfg;
20  import ecar.pojo.Estilo;
21  import ecar.pojo.PeriodicidadePrdc;
22  import ecar.pojo.SisAtributoSatb;
23  import ecar.pojo.SisGrupoAtributoSga;
24  import ecar.pojo.TextosSiteTxt;
25  
26  /**
27   * @author felipev
28   */
29  public class ConfiguracaoDao extends Dao {
30  
31    /**
32     * Construtor. Chama o Session factory do Hibernate
33     */
34    public ConfiguracaoDao(HttpServletRequest request) {
35      super();
36      this.request = request;
37    }
38  
39    /**
40     * Atribui os valores dos atributos passados por request a um objeto
41     * Configuração
42     * @param request
43     * @param configuracao
44     * @throws ECARException
45     */
46    public void setConfiguracao(HttpServletRequest request, ConfiguracaoCfg configuracao) throws ECARException {
47  
48      if (!"".equals(Pagina.getParamStr(request, "codCfg")))
49        configuracao.setCodCfg(Long.valueOf(Pagina.getParamStr(request, "codCfg")));
50  
51      configuracao.setNomeEstruturaCfg(Pagina.getParamStr(request, "nomeEstruturaCfg"));
52  
53      if (!"".equals(Pagina.getParamStr(request, "periodicidadePrdc")))
54        configuracao.setPeriodicidadePrdc((PeriodicidadePrdc) this.buscar(PeriodicidadePrdc.class, Long.valueOf(Pagina.getParam(request, "periodicidadePrdc"))));
55  
56      configuracao.setExibDefaultEstCfg(Pagina.getParamStr(request, "exibicaoDefaultEstruturaCfg"));
57  
58      configuracao.setIndGerarHistoricoCfg(Pagina.getParamStr(request, "indGerarHistoricoCfg"));
59  
60      configuracao.setTpArqIntegFinanceiraCfg(Pagina.getParamStr(request, "tpArqIntegFinanceiraCfg"));
61  
62      if (!"".equals(Pagina.getParamStr(request, "codSgaUnidMedida")))
63        configuracao.setSisGrupoAtributoSgaByUnidMedida((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaUnidMedida"))));
64      else
65        configuracao.setSisGrupoAtributoSgaByUnidMedida(null);
66  
67      if (!"".equals(Pagina.getParamStr(request, "codSgaTipoEvento")))
68        configuracao.setSisGrupoAtributoSgaByTipoEvento((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaTipoEvento"))));
69      else
70        configuracao.setSisGrupoAtributoSgaByTipoEvento(null);
71  
72      if (!"".equals(Pagina.getParamStr(request, "codSgaGrAtrClAcesso")))
73        configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrClAcesso((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaGrAtrClAcesso"))));
74  
75      if (!"".equals(Pagina.getParamStr(request, "codSgaGrAtrPgIni")))
76        configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrPgIni((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaGrAtrPgIni"))));
77      if (!"".equals(Pagina.getParamStr(request, "codSapadrao")))
78        configuracao.setSisAtributoSatbByCodSapadrao((SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(Pagina.getParam(request, "codSapadrao"))));
79  
80      if (!"".equals(Pagina.getParamStr(request, "codSgaGrAtrLeiCapa")))
81        configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrLeiCapa((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaGrAtrLeiCapa"))));
82  
83      if (!"".equals(Pagina.getParamStr(request, "codSgaPontoCritico")))
84        configuracao.setSisGrupoAtributoSgaTipoPontoCritico((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaPontoCritico"))));
85      else
86        configuracao.setSisGrupoAtributoSgaTipoPontoCritico(null);
87  
88      if (!"".equals(Pagina.getParamStr(request, "codSacapa")))
89        configuracao.setSisAtributoSatbByCodSacapa((SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(Pagina.getParam(request, "codSacapa"))));
90  
91      if (!"".equals(Pagina.getParamStr(request, "atrTpAcesso")))
92        configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrTpAcesso((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "atrTpAcesso"))));
93      if (!"".equals(Pagina.getParamStr(request, "codSaUsu")))
94        configuracao.setSisAtributoSatbByCodSaAcesso((SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(Pagina.getParam(request, "codSaUsu"))));
95  
96      if (!"".equals(Pagina.getParamStr(request, "atrNvPlan")))
97        configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrNvPlan((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "atrNvPlan"))));
98  
99      /*
100      * -- Add conforme modificação solicitada no UC04-05
101      * @author rogeriom
102      * @since 12/04/2006 --
103      */
104 
105     if (!"".equals(Pagina.getParamStr(request, "intervaloAtualizacaoEmail"))) {
106       configuracao.setIntervaloAtualizacaoEmail(Long.valueOf(Pagina.getParamStr(request, "intervaloAtualizacaoEmail")));
107     }
108 
109     if (!"".equals(Pagina.getParamStr(request, "diasAntecedenciaMailCfg"))) {
110       configuracao.setDiasAntecedenciaMailCfg(Long.valueOf(Pagina.getParamStr(request, "diasAntecedenciaMailCfg")));
111     }
112 
113     if (!"".equals(Pagina.getParamStr(request, "horaEnvioMailCfg"))) {
114       configuracao.setHoraEnvioMailCfg(Pagina.getParamStr(request, "horaEnvioMailCfg"));
115     }
116 
117     this.setConfiguracaoMail(request, configuracao); /* -- Opções de envio -- */
118 
119     Estilo estilo = new Estilo();
120     estilo.setCodEstilo(Integer.valueOf((Pagina.getParamStr(request, "estilo"))));
121     configuracao.setEstilo(estilo);
122 
123     /*
124      * -- Adicionado por Igor para migração dos properties para Banco 10/05/2006
125      */
126 
127     configuracao.setTituloSistema(Pagina.getParamStr(request, "tituloSistema"));
128     configuracao.setEmailServer(Pagina.getParamStr(request, "emailServer"));
129     configuracao.setImagemEsquerda(Pagina.getParamStr(request, "imagemEsquerda"));
130     configuracao.setRaizUpload(Pagina.getParamStr(request, "raizUpload"));
131     configuracao.setUploadUsuarios(Pagina.getParamStr(request, "uploadUsuarios"));
132     configuracao.setUploadEmpresa(Pagina.getParamStr(request, "uploadEmpresa"));
133     configuracao.setUploadCategoria(Pagina.getParamStr(request, "uploadCategoria"));
134     configuracao.setUploadAnexos(Pagina.getParamStr(request, "uploadAnexos"));
135     configuracao.setUploadAdmPortal(Pagina.getParamStr(request, "uploadAdmPortal"));
136     configuracao.setUploadIconeLinks(Pagina.getParamStr(request, "uploadIconeLinks"));
137     configuracao.setUploadExportacaoDemandas(Pagina.getParamStr(request, "uploadExportacaoDemandas"));
138 
139     configuracao.setSeparadorArqTXT(Pagina.getParamStr(request, "separadorArqTXT"));
140     configuracao.setSeparadorCampoMultivalor(Pagina.getParamStr(request, "separadorCampoMultivalor"));
141 
142     configuracao.setNumRegistros(Long.valueOf(Pagina.getParamStr(request, "numRegistros")));
143     configuracao.setQtdeItensGalAnexo(Long.valueOf(Pagina.getParamStr(request, "qteItensGalAnexo")));
144     configuracao.setNuItensExibidosPaginacao(Integer.valueOf(Pagina.getParamStr(request, "nuItensExibidosPaginacao")).intValue());
145 
146     configuracao.setLabelMonitorado(Pagina.getParamStr(request, "labelMonitorado"));
147     configuracao.setLabelOrgao(Pagina.getParamStr(request, "labelOrgao"));
148 
149     configuracao.setLabelSituacaoParecer(Pagina.getParamStr(request, "labelSituacaoParecer"));
150     configuracao.setLabelCorParecer(Pagina.getParamStr(request, "labelCorParecer"));
151     configuracao.setLabelSituacaoListaPareceres(Pagina.getParamStr(request, "labelSituacaoListaPareceres"));
152 
153     /*
154      * -- Adicionado por aleixo - Integração Financeira 02/08/2006
155      */
156 
157     configuracao.setFinanceiroDescValor1Cfg(Pagina.getParamStr(request, "financeiroDescValor1Cfg"));
158     configuracao.setFinanceiroDescValor2Cfg(Pagina.getParamStr(request, "financeiroDescValor2Cfg"));
159     configuracao.setFinanceiroDescValor3Cfg(Pagina.getParamStr(request, "financeiroDescValor3Cfg"));
160     configuracao.setFinanceiroDescValor4Cfg(Pagina.getParamStr(request, "financeiroDescValor4Cfg"));
161     configuracao.setFinanceiroDescValor5Cfg(Pagina.getParamStr(request, "financeiroDescValor5Cfg"));
162     configuracao.setFinanceiroDescValor6Cfg(Pagina.getParamStr(request, "financeiroDescValor6Cfg"));
163 
164     configuracao.setUploadIntegracao(Pagina.getParamStr(request, "uploadIntegracao"));
165 
166     /*
167      * -- Adicionado por aleixo - Integração Financeira (Cadastro de Recursos)
168      * 09/03/2007
169      */
170     configuracao.setRecursoDescValor1Cfg(Pagina.getParamStr(request, "recursoDescValor1Cfg"));
171     configuracao.setRecursoDescValor2Cfg(Pagina.getParamStr(request, "recursoDescValor2Cfg"));
172     configuracao.setRecursoDescValor3Cfg(Pagina.getParamStr(request, "recursoDescValor3Cfg"));
173 
174     /*
175      * -- Adicionado por Rogerio Inclusão de campo sobre Metas Físicas na tela
176      * 15/03/2007 --
177      */
178     if (!"".equals(Pagina.getParamStr(request, "codSgaMetasFisicas")))
179       configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrMetasFisicas((SisGrupoAtributoSga) this.buscar(SisGrupoAtributoSga.class, Long.valueOf(Pagina.getParam(request, "codSgaMetasFisicas"))));
180     else
181       configuracao.setSisGrupoAtributoSgaByCodSgaGrAtrMetasFisicas(null);
182 
183     /*--
184      * Adicionado por Davi Gadêlha - SERPRO/DERCE
185      * Inclusão do campo de período padrão para ser usado na tela de filtros
186      * 24/01/2008
187      */
188     if (!"".equals(Pagina.getParamStr(request, "periodoPadrao"))) {
189       configuracao.setPeriodoPadrao(Long.valueOf((Pagina.getParamStr(request, "periodoPadrao"))));
190     }
191     else {
192       configuracao.setPeriodoPadrao(null);
193     }
194 
195     if (!"".equals(Pagina.getParamStr(request, "indOcultarObservacoesParecer"))) {
196 
197       configuracao.setIndOcultarObservacoesParecer(Pagina.getParamStr(request, "indOcultarObservacoesParecer"));
198     }
199 
200   } // fim setConfiguracao
201 
202   /**
203    * obtem dados da lista, testa para setar como ativo / inativo,testa para
204    * atribuir o texto e-mail,testa para atribuir o texto sms, por fim adiciona
205    * as configurações
206    * @param request
207    * @param configuracao
208    * @throws ECARException
209    */
210   public void setConfiguracaoMail(HttpServletRequest request, ConfiguracaoCfg configuracao) throws ECARException {
211     // obtem os dados da lista
212     String[] listCfgMail = request.getParameterValues("chkAtivoCfgM");
213     String[] listCfgObrigatorio = request.getParameterValues("chkObrigatorioCfgM");
214     String[] listCboEmail = request.getParameterValues("cboCodTextoSiteEmail");
215     String[] listCboSMS = request.getParameterValues("cboCodTextoSiteSMS");
216 
217     ConfigMailCfgmDAO configMailDao = new ConfigMailCfgmDAO(request);
218     Iterator itConfigMail = configMailDao.listar(ConfigMailCfgm.class, new String[] { "descricaoCfgm", "asc" }).iterator();
219 
220     TextosSiteDao textoSiteDao = new TextosSiteDao(request);
221 
222     int indice = 0;
223 
224     while (itConfigMail.hasNext()) {
225       ConfigMailCfgm configMail = (ConfigMailCfgm) itConfigMail.next();
226       configMail.setAtivoCfgm(String.valueOf("N"));
227       configMail.setIndEnvioObrigatorio(String.valueOf("N"));
228 
229       // teste para setar como ativo/ inativo
230       if (listCfgMail != null) {
231         for (int i = 0; i < listCfgMail.length; i++) {
232           if (configMail.getCodCfgm().equals(Integer.valueOf(listCfgMail[i])))
233             configMail.setAtivoCfgm(String.valueOf("S"));
234         }
235       }
236       // luana: incluindo o campo obrigatorio
237       if (listCfgObrigatorio != null) {
238         for (int i = 0; i < listCfgObrigatorio.length; i++) {
239           if (configMail.getCodCfgm().equals(Integer.valueOf(listCfgObrigatorio[i])))
240             configMail.setIndEnvioObrigatorio(String.valueOf("S"));
241         }
242       }
243 
244       // teste para atribuir o texto e-mail
245       if (listCboEmail != null) {
246         if (!"0".equals(listCboEmail[indice])) {
247           configMail.setTextosSiteMail((TextosSiteTxt) textoSiteDao.buscar(TextosSiteTxt.class, Long.valueOf(listCboEmail[indice])));
248         }
249         else {
250           configMail.setTextosSiteMail(null);
251         }
252       }
253 
254       // teste para atribuir o texto sms
255       if (listCboSMS != null) {
256         if (!"0".equals(listCboSMS[indice])) {
257           configMail.setTextosSiteSms((TextosSiteTxt) textoSiteDao.buscar(TextosSiteTxt.class, Long.valueOf(listCboSMS[indice])));
258         }
259         else {
260           configMail.setTextosSiteSms(null);
261         }
262       }
263 
264       indice++;
265 
266       if (configuracao.getConfigMailCfgms() == null)
267         configuracao.setConfigMailCfgms(new HashSet());
268 
269       configuracao.getConfigMailCfgms().add(configMail);
270     }
271 
272   }
273 
274   /**
275    * Grava as configurações ( ou altera se já houver um registro gravado )
276    * @param request
277    * @param configuracao
278    * @throws ECARException
279    */
280   public void salvar(HttpServletRequest request, ConfiguracaoCfg configuracao) throws ECARException, HibernateException {
281     this.salvarOuAlterar(configuracao);
282   }
283 
284   /**
285    * Verifica se já foi gravado um registro de Configuração
286    * @return
287    * @throws ECARException
288    */
289   public boolean existeConfiguracao() throws ECARException {
290     List confg = this.listar(ConfiguracaoCfg.class, null);
291     if (confg != null && confg.size() > 0)
292       return true;
293     else
294       return false;
295   }
296 
297   /**
298    * Retorna o objeto configuração do Sistema caso algum já tenha sido gravado,
299    * caso contrário retorna null
300    * @return
301    * @throws ECARException
302    */
303   public ConfiguracaoCfg getConfiguracao() throws ECARException {
304     List confg = this.listar(ConfiguracaoCfg.class, null);
305     if (confg != null && confg.size() > 0)
306       return (ConfiguracaoCfg) confg.iterator().next();
307     else
308       return new ConfiguracaoCfg();
309   }
310 
311 }