Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

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

import java.util.ArrayList;
import java.util.List;

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

import br.com.ec.domain.dto.LojaDTO;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.service.loja.LojaService;
import br.com.ec.domain.shared.ConstantesSEC;
import br.com.ec.infrastructure.repository.LojaRepository;
import br.edu.cesmac.core.generic.AbstractService;
import br.edu.cesmac.core.generic.GenericRepository;
import br.edu.cesmac.core.validador.Validador;

@Service
public class LojaServiceImpl extends AbstractService<Loja> implements LojaService {
       
        private LojaRepository lojaRepository;

        @Autowired
        public LojaServiceImpl(Validador validador, LojaRepository lojaRepository) {
                super(validador);
                this.lojaRepository = lojaRepository;
        }

        @Override
        protected GenericRepository<Loja> getRepository() {
                return lojaRepository;
        }
       
        @Override
        protected void regrasNegocioCadastrar(Loja loja) {
                loja.setAtivo(true);
        }
       
        @Override
        public List<Loja> listarLojasAtivas() {
                Loja lojaSelecionado = new Loja();
                lojaSelecionado.setAtivo(true);
                return lojaRepository.consultarLojas(true);
        }
       
        @Override
        public List<Loja> listarLojasAtivasComLojaEstoque() {
                Loja lojaEstoque = new Loja();
                lojaEstoque.setSequencial(ConstantesSEC.SEQUENCIAL_ESTOQUE_1);
                lojaEstoque.setDescricao(ConstantesSEC.DESCRICAO_ESTOQUE_9);
               
                List<Loja> lojas = listarLojasAtivas();
                lojas.add(0, lojaEstoque);
                return lojas;
        }
       
        @Override
        public List<LojaDTO> listarLojasDTOAtivasComLojaEstoque() {
//              LojaDTO lojaEstoque = new LojaDTO();
//              lojaEstoque.setSequencial(ConstantesSEC.SEQUENCIAL_ESTOQUE_9);
//              lojaEstoque.setDescricao(ConstantesSEC.DESCRICAO_ESTOQUE_9);
               
                List<LojaDTO> lojas = lojaRepository.consultarLojasDTO(true);
//              lojas.add(0, lojaEstoque);
                return lojas;
        }
       
        @Override
        public List<Loja> listarLojasAtivasEspacoCase() {
                List<Loja> lojasNaoEspacoCase = new ArrayList<Loja>();
                Loja lojaFarmacia = new Loja(ConstantesSEC.SEQUENCIAL_LOJA_FARMACIA_7);
                Loja lojaRestaurante = new Loja(ConstantesSEC.SEQUENCIAL_RESTAURANTE_16);
                lojasNaoEspacoCase.add(lojaFarmacia);
                lojasNaoEspacoCase.add(lojaRestaurante);
               
                List<Loja> lojas = listarLojasAtivas();
                lojas.removeAll(lojasNaoEspacoCase);
                return lojas;
        }
       
        @Override
        public List<Loja> listarLojasAtivasEspacoCaseComLojaEstoque() {
                Loja lojaEstoque = new Loja();
                lojaEstoque.setSequencial(ConstantesSEC.SEQUENCIAL_ESTOQUE_1);
                lojaEstoque.setDescricao(ConstantesSEC.DESCRICAO_ESTOQUE_9);
               
                List<Loja> lojas = listarLojasAtivasEspacoCase();
                lojas.add(0, lojaEstoque);
                return lojas;
        }
       
        @Override
        public List<Loja> listarLojasComDetalhe() {
                return lojaRepository.consultarLojasComDetalhe();
        }
       
}