Subversion Repositories Integrator Subversion

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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

import java.util.Date;
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.DataUtils;
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.Pagamento;
import br.com.ec.domain.service.pagamento.PagamentoService;
import br.com.ec.infrastructure.repository.PagamentoRepository;

@Service
public class PagamentoServiceImpl extends AbstractService<Pagamento> implements PagamentoService {
       
        private PagamentoRepository pagamentoRepository;

        @Autowired
        public PagamentoServiceImpl(Validador validador, PagamentoRepository pagamentoRepository) {
                super(validador);
                this.pagamentoRepository = pagamentoRepository;
        }

        @Override
        protected GenericRepository<Pagamento> getRepository() {
                return pagamentoRepository;
        }
       
        @Override
        protected void regrasNegocioCadastrar(Pagamento pagamento) {
                if (VerificadorUtil.estaNulo(pagamento.getData())) {
                        pagamento.setData(DataUtils.getDataAtual());
                }
                pagamento.setLancado(false);
        }
       
        @Override
        public Integer quantidadePagamentosEmAberto(Loja loja) {
                Pagamento pagamento = new Pagamento();
                pagamento.setLoja(loja);
                pagamento.setLancado(false);
                return this.obterQuantidadeDeRegistrosPassandoEntidade(pagamento);
        }
       
        @Override
        public List<Pagamento> consultarPagamentosDoDia(Long sequencialLoja, Date dataVendas) {
                Pagamento pagamento = new Pagamento();
                pagamento.setLoja(new Loja(sequencialLoja));
                pagamento.setData(dataVendas);
                return this.consultarPassandoEntidade(pagamento, 0, this.obterQuantidadeDeRegistrosPassandoEntidade(pagamento));
        }
       
}