145 lines
6.5 KiB
Java
145 lines
6.5 KiB
Java
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<ComissaoReceita> 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<com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita> 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<com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita> recuperarComissaoReceita(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal) {
|
|
|
|
List<com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita> lsComissaoReceitasVO = new ArrayList<com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita>();
|
|
List<ComissaoReceita> 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);
|
|
}
|
|
}
|
|
|
|
}
|