Subversion Repositories Integrator Subversion

Rev

Rev 182 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.com.ec.domain.service.marca.impl;
2
 
3
import java.util.List;
4
 
5
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.stereotype.Service;
7
 
8
import br.com.ec.domain.model.Marca;
9
import br.com.ec.domain.service.marca.MarcaService;
10
import br.com.ec.infrastructure.repository.MarcaRepository;
11
import br.edu.cesmac.core.generic.AbstractService;
12
import br.edu.cesmac.core.generic.GenericRepository;
13
import br.edu.cesmac.core.util.VerificadorUtil;
14
import br.edu.cesmac.core.validador.Validador;
15
 
16
@Service
17
public class MarcaServiceImpl extends AbstractService<Marca> implements MarcaService {
18
 
19
        private MarcaRepository marcaRepository;
20
 
21
        @Autowired
22
        public MarcaServiceImpl(Validador validador, MarcaRepository marcaRepository) {
23
                super(validador);
24
                this.marcaRepository = marcaRepository;
25
        }
26
 
27
        @Override
28
        protected GenericRepository<Marca> getRepository() {
29
                return marcaRepository;
30
        }
31
 
32
        @Override
33
        protected void regrasNegocioCadastrar(Marca marca) {
34
                marca.setAtivo(true);
35
        }
36
 
37
        @Override
38
        public List<Marca> marcasComContagemAtiva() {
39
                return marcaRepository.marcasComContagemAtiva();
40
        }
41
 
42
        @Override
43
        public void proximoCiclo() {
44
                Integer proximoCiclo = 1;
45
                List<Marca> marcasComContagemAtivas = marcaRepository.marcasComContagemAtiva();
46
                for (Marca marca : marcasComContagemAtivas) {
47
                        if (VerificadorUtil.naoEstaNulo(marca.getCiclo())) {
48
                                proximoCiclo = marca.getCiclo() + 1;
49
                                break;
50
                        }
51
                }
52
                for (Marca marca : marcasComContagemAtivas) {
53
                        marca.setIndicadorContagemSolicitada(false);
54
                        alterar(marca);
55
                }
56
                List<Marca> marcasProximoCiclo = marcaRepository.marcasComCiclo(proximoCiclo);
57
                if (VerificadorUtil.isListaNulaOuVazia(marcasProximoCiclo)) {
58
                        marcasProximoCiclo = marcaRepository.marcasComCiclo(1);
59
                }
60
                for (Marca marca : marcasProximoCiclo) {
61
                        marca.setIndicadorContagemSolicitada(true);
62
                        alterar(marca);
63
                }
64
        }
65
 
66
}