diff --git a/src/com/rjconsultores/ventaboletos/constantes/Constantes.java b/src/com/rjconsultores/ventaboletos/constantes/Constantes.java index 1a7806650..63b89c907 100644 --- a/src/com/rjconsultores/ventaboletos/constantes/Constantes.java +++ b/src/com/rjconsultores/ventaboletos/constantes/Constantes.java @@ -121,4 +121,15 @@ public class Constantes { public static final String URL_PAINEL_EMBARCADA = "URL_PAINEL_EMBARCADA"; public static final String EXIGE_EMAIL_OU_TEL_CAD_CLIENTE = "EXIGE_EMAIL_OU_TEL_CAD_CLIENTE"; + + public static final String SMTP_COMISSAO_EMAIL = "SMTP_COMISSAO_EMAIL"; + + public static final String SMTP_COMISSAO_HOST = "SMTP_COMISSAO_HOST"; + + public static final String SMTP_COMISSAO_PASS = "SMTP_COMISSAO_PASS"; + + public static final String SMTP_COMISSAO_PORT = "SMTP_COMISSAO_PORT"; + + public static final String SMTP_COMISSAO_USER = "SMTP_COMISSAO_USER"; + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java index 984118929..a7ce3aeb6 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java @@ -148,7 +148,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO sql.append(" pa.numagencia as agencia, pa.numconta || '-' || pa.digito as conta, if.nome as banco, "); sql.append(" ci.nombciudad as cidade, pv.descCorreo, pv.razonsocial, pv.numdocpuntoventa as cnpjPuntoventa, "); sql.append(" c.data_inicial as dataInicial, c.data_final as dataFinal, "); - sql.append(" c.receita_gap as receitaGAP "); + sql.append(" c.receita_gap as receitaGAP, c.empresa_id as empresaId "); sql.append("FROM comissao c "); sql.append("JOIN punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); sql.append("JOIN empresa e on e.empresa_id = c.empresa_id "); @@ -219,6 +219,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO .addScalar("dataInicial", DateType.INSTANCE) .addScalar("dataFinal", DateType.INSTANCE) .addScalar("receitaGAP", BigDecimalType.INSTANCE) + .addScalar("empresaId", IntegerType.INSTANCE) .setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class)); setParametros(query, parametros); diff --git a/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java b/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java index 415b257f9..cf7459233 100644 --- a/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java +++ b/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java @@ -39,7 +39,7 @@ public interface CalculoComissaoService { public List relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException; - public void enviarEmailReciboComissao(HistoricoComissao historicoComissao, byte[] recibo); + public boolean enviarEmailReciboComissao(HistoricoComissao historicoComissao, byte[] recibo); public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date dataInicial, Date dataFinal, Integer usuarioId) throws ComissaoException, BusinessException; diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java index 3c983d7d1..50a914f5e 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java @@ -30,6 +30,7 @@ import com.rjconsultores.ventaboletos.entidad.Conferencia; import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.DescontoComissao; import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EmpresaEmailConfig; import com.rjconsultores.ventaboletos.entidad.EmpresaImposto; import com.rjconsultores.ventaboletos.entidad.PtovtaComissao; import com.rjconsultores.ventaboletos.entidad.PtovtaComissao.Receita; @@ -47,6 +48,7 @@ import com.rjconsultores.ventaboletos.service.ConferenciaComissaoService; import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.service.CtrlFechamentoCaixaService; import com.rjconsultores.ventaboletos.service.DescontoComissaoService; +import com.rjconsultores.ventaboletos.service.EmpresaEmailConfigService; import com.rjconsultores.ventaboletos.service.EmpresaImpostoService; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; @@ -59,6 +61,7 @@ import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita; +import com.rjconsultores.ventaboletos.vo.comissao.EmailConfigVO; import com.rjconsultores.ventaboletos.vo.comissao.EventosFinanceirosVO; import com.rjconsultores.ventaboletos.vo.comissao.FormapagoVO; import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao; @@ -106,6 +109,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { @Autowired private CtrlFechamentoCaixaService ctrlFechamentoCaixaService; + @Autowired + private EmpresaEmailConfigService empresaEmailConfigService; + public boolean validaCompetencia(Date periodo) { Calendar calendario = Calendar.getInstance(); calendario.setTime(periodo); @@ -1156,36 +1162,19 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { } @Override - public void enviarEmailReciboComissao(HistoricoComissao historicoComissao, byte[] recibo) { + public boolean enviarEmailReciboComissao(HistoricoComissao historicoComissao, byte[] recibo) { try { - if(StringUtils.isNotBlank(historicoComissao.getDescCorreo())) { + EmailConfigVO emailConfig = carregarConfiguracoesEmail(historicoComissao); + + if(emailConfig != null && StringUtils.isNotBlank(historicoComissao.getDescCorreo())) { SendMail mail = new SendMail(); - mail.setEmailToCO(historicoComissao.getDescCorreo()); - - Constante constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_EMAIL"); - if(constante != null) { - mail.setEmailFrom(constante.getValorconstante()); - } - - constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_HOST"); - if(constante != null) { - mail.setSmtpHost(constante.getValorconstante()); - } - - constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_PASS"); - if(constante != null) { - mail.setSmtpPassword(constante.getValorconstante()); - } - - constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_PORT"); - if(constante != null) { - mail.setSmtpPort(constante.getValorconstante()); - } - - constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_USER"); - if(constante != null) { - mail.setSmtpUser(constante.getValorconstante()); - } + mail.setEmailTo(historicoComissao.getDescCorreo()); + mail.setEmailFrom(emailConfig.getSmtpEmail()); + mail.setSmtpHost(emailConfig.getSmtp()); + mail.setSmtpPassword(emailConfig.getSenha()); + mail.setSmtpPort(emailConfig.getSmtpPorta()); + mail.setSmtpUser(emailConfig.getSmtpEmail()); + mail.setAuth(emailConfig.isAutenticacao()); String assunto = null; String texto = null; @@ -1216,13 +1205,68 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { mail.addAnexo(Labels.getLabel("busquedaCalculoComissaoController.recibo.email.nomeAnexo", new String[] {nomeArquivo}).concat(".pdf"), baos, MimeType.PDF); mail.send(); + + return true; } } catch (Exception e) { log.error(e.getMessage(), e); } + return false; } + private EmailConfigVO carregarConfiguracoesEmail(HistoricoComissao historicoComissao) { + EmailConfigVO emailConfigVO = carregarConstantesEmail(); + if(emailConfigVO == null && historicoComissao.getEmpresaId() != null) { + EmpresaEmailConfig empresaEmailConfig = empresaEmailConfigService.buscarPorEmpresa(new Empresa(historicoComissao.getEmpresaId())); + if(empresaEmailConfig != null) { + emailConfigVO = new EmailConfigVO(); + emailConfigVO.setAutenticacao(BooleanUtils.toBoolean(empresaEmailConfig.getIndAutenticacao())); + emailConfigVO.setSenha(empresaEmailConfig.getSenha()); + emailConfigVO.setSmtp(empresaEmailConfig.getSmtp()); + emailConfigVO.setSmtpEmail(empresaEmailConfig.getSmtpEmail()); + emailConfigVO.setSmtpUser(empresaEmailConfig.getSmtpEmail()); + emailConfigVO.setSmtpPorta(empresaEmailConfig.getSmtpPorta()); + } + } + return emailConfigVO; + } + + private EmailConfigVO carregarConstantesEmail() { + EmailConfigVO emailConfigVO = new EmailConfigVO(); + Constante constante = constanteService.buscarPorNomeConstante(Constantes.SMTP_COMISSAO_EMAIL); + if(constante == null) { + return null; + } + emailConfigVO.setSmtpEmail(constante.getValorconstante()); + + constante = constanteService.buscarPorNomeConstante(Constantes.SMTP_COMISSAO_HOST); + if(constante == null) { + return null; + } + emailConfigVO.setSmtp(constante.getValorconstante()); + + constante = constanteService.buscarPorNomeConstante(Constantes.SMTP_COMISSAO_PASS); + if(constante == null) { + return null; + } + emailConfigVO.setSenha(constante.getValorconstante()); + + constante = constanteService.buscarPorNomeConstante(Constantes.SMTP_COMISSAO_PORT); + if(constante == null) { + return null; + } + emailConfigVO.setSmtpPorta(constante.getValorconstante()); + + constante = constanteService.buscarPorNomeConstante(Constantes.SMTP_COMISSAO_USER); + if(constante == null) { + return null; + } + emailConfigVO.setSmtpUser(constante.getValorconstante()); + + return emailConfigVO; + } + private Date getDate(int dia, int mes, int ano) { Calendar cData = Calendar.getInstance(); cData.set(Calendar.DAY_OF_MONTH, dia); diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java b/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java new file mode 100644 index 000000000..dc266da6d --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java @@ -0,0 +1,60 @@ +package com.rjconsultores.ventaboletos.vo.comissao; + +public class EmailConfigVO { + + private String smtp; + private String senha; + private String smtpPorta; + private String smtpEmail; + private String smtpUser; + private boolean autenticacao; + + public String getSmtp() { + return smtp; + } + + public void setSmtp(String smtp) { + this.smtp = smtp; + } + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSmtpPorta() { + return smtpPorta; + } + + public void setSmtpPorta(String smtpPorta) { + this.smtpPorta = smtpPorta; + } + + public String getSmtpEmail() { + return smtpEmail; + } + + public void setSmtpEmail(String smtpEmail) { + this.smtpEmail = smtpEmail; + } + + public boolean isAutenticacao() { + return autenticacao; + } + + public void setAutenticacao(boolean autenticacao) { + this.autenticacao = autenticacao; + } + + public String getSmtpUser() { + return smtpUser; + } + + public void setSmtpUser(String smtpUser) { + this.smtpUser = smtpUser; + } + +}