Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.service.marca.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.ec.domain.model.Marca;
import br.com.ec.domain.service.marca.MarcaService;
import br.com.ec.infrastructure.repository.MarcaRepository;
import br.edu.cesmac.core.generic.AbstractService;
import br.edu.cesmac.core.generic.GenericRepository;
import br.edu.cesmac.core.util.VerificadorUtil;
import br.edu.cesmac.core.validador.Validador;

@Service
public class MarcaServiceImpl extends AbstractService<Marca> implements MarcaService {
       
        private MarcaRepository marcaRepository;

        @Autowired
        public MarcaServiceImpl(Validador validador, MarcaRepository marcaRepository) {
                super(validador);
                this.marcaRepository = marcaRepository;
        }

        @Override
        protected GenericRepository<Marca> getRepository() {
                return marcaRepository;
        }
       
        @Override
        protected void regrasNegocioCadastrar(Marca marca) {
                marca.setAtivo(true);
        }
       
        @Override
        public List<Marca> marcasComContagemAtiva() {
                return marcaRepository.marcasComContagemAtiva();
        }
       
        @Override
        public void proximoCiclo() {
                Integer proximoCiclo = 1;
                List<Marca> marcasComContagemAtivas = marcaRepository.marcasComContagemAtiva();
                for (Marca marca : marcasComContagemAtivas) {
                        if (VerificadorUtil.naoEstaNulo(marca.getCiclo())) {
                                proximoCiclo = marca.getCiclo() + 1;
                                break;
                        }
                }
                for (Marca marca : marcasComContagemAtivas) {
                        marca.setIndicadorContagemSolicitada(false);
                        alterar(marca);
                }
                List<Marca> marcasProximoCiclo = marcaRepository.marcasComCiclo(proximoCiclo);
                if (VerificadorUtil.isListaNulaOuVazia(marcasProximoCiclo)) {
                        marcasProximoCiclo = marcaRepository.marcasComCiclo(1);
                }
                for (Marca marca : marcasProximoCiclo) {
                        marca.setIndicadorContagemSolicitada(true);
                        alterar(marca);
                }
        }
       
}