package br.com.ec.domain.service.vendedor.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.ec.core.generic.AbstractService;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.core.validador.Validador;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.domain.model.Vendedor;
import br.com.ec.domain.service.vendedor.VendedorService;
import br.com.ec.infrastructure.repository.VendedorRepository;
@Service
public class VendedorServiceImpl
extends AbstractService
<Vendedor
> implements VendedorService
{
private final VendedorRepository vendedorRepository
;
@Autowired
public VendedorServiceImpl
(VendedorRepository vendedorRepository, Validador validador
) {
super(validador
);
this.
vendedorRepository = vendedorRepository
;
}
@
Override
protected GenericRepository
<Vendedor
> getRepository
() {
return this.
vendedorRepository;
}
@
Override
protected void regrasNegocioCadastrar
(Vendedor vendedor
) {
vendedor.
setAtivo(true);
}
@
Override
public List<Vendedor
> consultarVendedoresColaboradores
() {
Vendedor vendedor =
new Vendedor
();
vendedor.
setIndicadorColaborador(true);
return vendedorRepository.
consultarPassandoEntidade(vendedor,
0, vendedorRepository.
obterQuantidadeDeRegistrosPassandoEntidade(vendedor
));
}
@
Override
public List<Vendedor
> consultarVendedoresColaboradoresAtivos
(Loja loja
) {
Vendedor vendedor =
new Vendedor
();
vendedor.
setIndicadorColaborador(true);
vendedor.
setAtivo(true);
if (VerificadorUtil.
naoEstaNulo(loja
)) {
vendedor.
setLoja(loja
);
}
return vendedorRepository.
consultarPassandoEntidade(vendedor,
0, vendedorRepository.
obterQuantidadeDeRegistrosPassandoEntidade(vendedor
));
}
@
Override
public List<Vendedor
> consultarVendedoresExternosAtivos
() {
Vendedor vendedor =
new Vendedor
();
vendedor.
setIndicadorColaborador(false);
vendedor.
setAtivo(true);
return vendedorRepository.
consultarPassandoEntidade(vendedor,
0, vendedorRepository.
obterQuantidadeDeRegistrosPassandoEntidade(vendedor
));
}
@
Override
public Vendedor consultarVendedorPorPessoa
(Pessoa pessoa
) {
return vendedorRepository.
consultarVendedorPorPessoa(pessoa
);
}
}