package br.com.ec.domain.service.pendencia.impl;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Pendencia;
import br.com.ec.domain.model.Perfil;
import br.com.ec.domain.service.pendencia.PendenciaService;
import br.com.ec.infrastructure.repository.PendenciaRepository;
import br.edu.cesmac.core.generic.AbstractService;
import br.edu.cesmac.core.generic.GenericRepository;
import br.edu.cesmac.core.util.DataUtils;
import br.edu.cesmac.core.validador.Validador;
@Service
public class PendenciaServiceImpl
extends AbstractService
<Pendencia
> implements PendenciaService
{
private PendenciaRepository pendenciaRepository
;
@Autowired
public PendenciaServiceImpl
(Validador validador, PendenciaRepository pendenciaRepository
) {
super(validador
);
this.
pendenciaRepository = pendenciaRepository
;
}
@
Override
protected GenericRepository
<Pendencia
> getRepository
() {
return pendenciaRepository
;
}
@
Override
protected void regrasNegocioCadastrar
(Pendencia pendencia
) {
pendencia.
setData(DataUtils.
getDataAtual());
pendencia.
setIndicadorFinalizado(false);
}
@
Override
public Integer quantidadePendenciasNaoFinalizadas
(Loja loja
) {
Pendencia pendencia =
new Pendencia
();
pendencia.
setLoja(loja
);
pendencia.
setIndicadorFinalizado(false);
return this.
obterQuantidadeDeRegistrosPassandoEntidade(pendencia
);
}
@
Override
public Integer obterQuantidadePendenciasNaoFinalizadasPorLojaPerfilEePeriodo
(Loja loja, Perfil perfil,
Date dataInicial,
Date dataFinal
) {
return pendenciaRepository.
obterQuantidadePendenciasNaoFinalizadasPorLojaPerfilEePeriodo(loja, perfil, dataInicial, dataFinal
);
}
}