package com.rjconsultores.ventaboletos.service.impl; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; 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.Transactional; import com.rjconsultores.ventaboletos.dao.ComissaoReceitaDAO; import com.rjconsultores.ventaboletos.entidad.ComissaoReceita; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.ComissaoReceitaService; import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @Service("comissaoReceitaService") public class ComissaoReceitaServiceImpl implements ComissaoReceitaService { private static final Logger log = LoggerFactory.getLogger(CalculoComissaoServiceImpl.class); @Autowired private ComissaoReceitaDAO comissaoReceitaDAO; @Override public List obtenerTodos() { return comissaoReceitaDAO.obtenerTodos(); } @Override public ComissaoReceita obtenerID(Integer id) { return comissaoReceitaDAO.obtenerID(id); } @Override @Transactional public ComissaoReceita suscribir(ComissaoReceita entidad) { entidad.setActivo(Boolean.TRUE); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); return comissaoReceitaDAO.suscribir(entidad); } @Override @Transactional public ComissaoReceita actualizacion(ComissaoReceita entidad) { entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); return comissaoReceitaDAO.actualizacion(entidad); } @Override @Transactional public void borrar(ComissaoReceita entidad) { entidad.setActivo(Boolean.TRUE); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); comissaoReceitaDAO.actualizacion(entidad); } @Override @Transactional public void reterComissaoReceitaDiaria(Integer empresaId, Integer puntoVentaId, Integer usuarioId, List receitas) throws BusinessException { try { Empresa empresa = new Empresa(empresaId); PuntoVenta puntoVenta = new PuntoVenta(puntoVentaId); for (com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita comissaoReceitaVO : receitas) { ComissaoReceita comissaoReceita = new ComissaoReceita(comissaoReceitaVO); comissaoReceita.setEmpresa(empresa); comissaoReceita.setPuntoVenta(puntoVenta); comissaoReceita.setUsuarioId(usuarioId); comissaoReceitaDAO.suscribir(comissaoReceita); } } catch (Exception e) { log.error(e.getMessage(), e); throw new BusinessException(e.getMessage(), e); } } @Override public List recuperarComissaoReceita(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal) { List lsComissaoReceitasVO = new ArrayList(); List lsComissaoReceitas = comissaoReceitaDAO.recuperarComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal); for (ComissaoReceita comissaoReceita : lsComissaoReceitas) { com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita comissaoReceitaVO = new com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita(); comissaoReceitaVO.setCancelados(comissaoReceita.getCancelados()); comissaoReceitaVO.setCanceladosGAP(comissaoReceita.getCancelgap()); comissaoReceitaVO.setComissaoBPRDiaria(comissaoReceita.getComissaoBpr()); comissaoReceitaVO.setComissaoEntregaPassagemDiaria(comissaoReceita.getComissaoEntregaPassagem()); comissaoReceitaVO.setComissaoExcessoBagagemDiaria(comissaoReceita.getComissaoExcessoBagagem()); comissaoReceitaVO.setComissaoOutrosDiaria(comissaoReceita.getComissaoOutros()); comissaoReceitaVO.setComissaoSegOpcionalDiaria(comissaoReceita.getComissaoSegOpcional()); comissaoReceitaVO.setContImpressa(comissaoReceita.getQtdeImpgap()); comissaoReceitaVO.setData(comissaoReceita.getDatamovimento()); comissaoReceitaVO.setDevolucoesOrigem(comissaoReceita.getDevolvidosOrigem()); comissaoReceitaVO.setDevolucoesOrigemGAP(comissaoReceita.getDevolvidosOrigemGap()); comissaoReceitaVO.setDevolvidos(comissaoReceita.getDevolvidos()); comissaoReceitaVO.setDevolvidosGAP(comissaoReceita.getDevolvidosOrigemGap()); comissaoReceitaVO.setGapImpressa(comissaoReceita.getImpgap()); comissaoReceitaVO.setInternet(comissaoReceita.getInternet()); comissaoReceitaVO.setReceitaBPR(comissaoReceita.getBpr()); comissaoReceitaVO.setReceitaExcessoBagagem(comissaoReceita.getExcessoBagagem()); comissaoReceitaVO.setReceitaGAP(comissaoReceita.getGap()); comissaoReceitaVO.setReceitaSeguroOpcional(comissaoReceita.getSegOpcional()); comissaoReceitaVO.setReceitaSeguroOutros(comissaoReceita.getReceitaOutros()); BigDecimal receitaComissao = BigDecimal.ZERO; receitaComissao = MoneyHelper.somar(receitaComissao,comissaoReceitaVO.getReceitaBPR()); receitaComissao = MoneyHelper.somar(receitaComissao,comissaoReceitaVO.getReceitaGAP()); receitaComissao = MoneyHelper.subtrair(receitaComissao,comissaoReceitaVO.getCancelados()); receitaComissao = MoneyHelper.subtrair(receitaComissao,comissaoReceitaVO.getDevolvidos()); receitaComissao = MoneyHelper.subtrair(receitaComissao,comissaoReceitaVO.getDevolvidosGAP()); receitaComissao = MoneyHelper.subtrair(receitaComissao,comissaoReceitaVO.getCanceladosGAP()); comissaoReceitaVO.setReceitaComissao(receitaComissao); lsComissaoReceitasVO.add(comissaoReceitaVO); } return lsComissaoReceitasVO; } @Override @Transactional public void limparComissaoReceita(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal) throws BusinessException { try { comissaoReceitaDAO.limparComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal); } catch (Exception e) { log.error(e.getMessage(), e); throw new BusinessException(e.getMessage(), e); } } }