From 0323ea8301fc549b0cb8ee301c4440c96f4e9de6 Mon Sep 17 00:00:00 2001 From: wilian Date: Tue, 10 Jul 2018 13:29:57 +0000 Subject: [PATCH] fixes bug#11535 dev:gleimar qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@83234 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../service/CalculoComissaoService.java | 2 + .../impl/CalculoComissaoServiceImpl.java | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java b/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java index cf2cb5d1b..40ce7005e 100644 --- a/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java +++ b/src/com/rjconsultores/ventaboletos/service/CalculoComissaoService.java @@ -30,4 +30,6 @@ public interface CalculoComissaoService { public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date dataInicial, Date dataFinal, Integer usuarioId) throws ComissaoException, BusinessException; + public void retencaoAutomaticaComissao(); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java index 8d35e815f..50f8e7151 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java @@ -17,6 +17,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.zkoss.util.resource.Labels; import com.rjconsultores.ventaboletos.constantes.Constantes; @@ -43,10 +45,13 @@ import com.rjconsultores.ventaboletos.service.ConferenciaComissaoService; import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.service.DescontoComissaoService; import com.rjconsultores.ventaboletos.service.EmpresaImpostoService; +import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; +import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.utilerias.SendMail; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto; @@ -88,6 +93,12 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { @Autowired private ComissaoReceitaService comissaoReceitaService; + @Autowired + private EmpresaService empresaService; + + @Autowired + private PuntoVentaService puntoVentaService; + public boolean validaCompetencia(Date periodo) { Calendar calendario = Calendar.getInstance(); calendario.setTime(periodo); @@ -1000,5 +1011,37 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { throw new BusinessException(e.getMessage(), e); } } + + @Override + @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) + public void retencaoAutomaticaComissao() { + Integer usuarioId = 1; + if (UsuarioLogado.getUsuarioLogado() != null && UsuarioLogado.getUsuarioLogado().getUsuarioId() != null) { + usuarioId = UsuarioLogado.getUsuarioLogado().getUsuarioId(); + } + + List empresas = empresaService.buscarEmpresaPtoVtaComissao(); + List puntoVentas = puntoVentaService.buscarPuntoVentaPtoVtaComissao(empresas); + + Calendar cDataRetencao = Calendar.getInstance(); + cDataRetencao.add(Calendar.DAY_OF_MONTH, -2); + + Date dataRetencao = DateUtil.normalizarToFecha(cDataRetencao.getTime()); + String sDataRetencao = DateUtil.getStringDate(dataRetencao, "dd/MM/yyyy"); + + for (Empresa empresa : empresas) { + for (PuntoVenta puntoVenta : puntoVentas) { + String descretencao = "Empresa: "+ empresa.getNombempresa() + " - Agencia: " + puntoVenta.getNombpuntoventa() +" data: " + sDataRetencao; + log.info("Inicio Retencao " + descretencao); + try { + registrarCalculoComissao(puntoVenta, empresa, dataRetencao, dataRetencao, usuarioId); + log.info("Fim Retencao " + descretencao); + } catch (Exception e) { + log.info("Erro retencao " + descretencao); + log.error(e.getMessage(), e); + } + } + } + } }