Subversion Repositories Integrator Subversion

Rev

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

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

import java.util.List;

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

import br.com.ec.domain.model.Compra;
import br.com.ec.domain.model.Conta;
import br.com.ec.domain.model.Parcela;
import br.com.ec.domain.service.compra.CompraService;
import br.com.ec.domain.service.parcela.ParcelaService;
import br.com.ec.infrastructure.repository.CompraRepository;
import br.edu.cesmac.core.exception.NegocioException;
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 CompraServiceImpl extends AbstractService<Compra> implements CompraService {
       
        private ParcelaService parcelaService;
        private CompraRepository compraRepository;

        @Autowired
        public CompraServiceImpl(Validador validador, ParcelaService parcelaService, CompraRepository compraRepository) {
                super(validador);
                this.parcelaService = parcelaService;
                this.compraRepository = compraRepository;
        }

        @Override
        protected GenericRepository<Compra> getRepository() {
                return compraRepository;
        }
       
        @Override
        public Compra consultarCompraDaConta(Conta conta) {
                return compraRepository.consultarCompraDaConta(conta);
        }
       
        @Override
        public void adicionarParcelasNaCompra(Compra compra, List<Parcela> listaParcelas) {
                parcelaService.cadastrarContaComParcelasNaCompra(compra, listaParcelas);
                alterar(compra);
        }
       
        @Override
        public void vincularConta(Compra compra, Conta conta) {
                if (VerificadorUtil.estaNulo(conta)) {
                        throw new NegocioException("CONTA NÃO EXISTE");
                }
                compra.setConta(conta);
                alterar(compra);
        }
       
        @Override
        public void desvincularConta(Compra compra) {
                compra.setConta(null);
                alterar(compra);
        }
       
}