AdmMono/src/com/rjconsultores/ventaboletos/service/impl/ComissaoReceitaServiceImpl....

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);
}
}
}