Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller.managedbean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import br.com.ec.controller.managedbean.consultademanda.ParcelaRecebiveisConsultaPorDemanda;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.ParametrosConsultaLancamentosDTO;
import br.com.ec.domain.model.Parcela;
import br.com.ec.domain.model.tipos.TipoCartao;
import br.com.ec.domain.service.parcela.ParcelaService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;

@Named
@Scope("view")
public class ReceberParcelasBean extends AbstractBean<Parcela> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private ParametrosConsultaLancamentosDTO parametrosConsultaLancamentos;
       
        private ParcelaRecebiveisConsultaPorDemanda lazyProgramadosRecebiveis;
       
        private List<Parcela> parcelasSelecionadas;
    private Date dataRecebimento;
   
    private ParcelaService parcelaService;
   
        @Inject
        public ReceberParcelasBean(ParcelaRecebiveisConsultaPorDemanda lazyProgramadosRecebiveis, ParcelaService parcelaService) {
                this.lazyProgramadosRecebiveis = lazyProgramadosRecebiveis;
                this.parcelaService = parcelaService;
        }
       
        @Override
        public void preCarregamento() {
                entidade = new Parcela();
                parametrosConsultaLancamentos = new ParametrosConsultaLancamentosDTO();
                parametrosConsultaLancamentos.setEntidade(new Parcela());
                parametrosConsultaLancamentos.setDataInicial(DataUtils.getPrimeiroDiaDoMesAtual());
                parametrosConsultaLancamentos.setDataFinal(DataUtils.getUltimoDiaDoMesAtual());
                parcelasSelecionadas = new ArrayList<Parcela>();
        }
       
        @Override
        public void limparEntidade() {
                entidade = new Parcela();
        }

        @Override
        public GenericService<Parcela> getService() {
                return null;
        }
       
        @Override
        public Parcela getEntidade() {
                return entidade;
        }

        @Override
        public Parcela getId() {
                return getEntidade();
        }
       
        public ParametrosConsultaLancamentosDTO getParametrosConsultaLancamentos() {
                return parametrosConsultaLancamentos;
        }
        public void setParametrosConsultaLancamentos(ParametrosConsultaLancamentosDTO parametrosConsultaLancamentos) {
                this.parametrosConsultaLancamentos = parametrosConsultaLancamentos;
        }
       
        public ParcelaRecebiveisConsultaPorDemanda getLazyProgramadosRecebiveis() {
                prepararConsultaDemandaProgramadosRecebiveis();
                return lazyProgramadosRecebiveis;
        }
        public void setLazyProgramadosRecebiveis(ParcelaRecebiveisConsultaPorDemanda lazyProgramadosRecebiveis) {
                this.lazyProgramadosRecebiveis = lazyProgramadosRecebiveis;
        }
        public void prepararConsultaDemandaProgramadosRecebiveis() {
                getParametrosConsultaLancamentos().setPagamentoRealizado(false);
                getParametrosConsultaLancamentos().setOrdenacao("e.dataVencimento");
                getParametrosConsultaLancamentos().setTipoBusca("R");
                lazyProgramadosRecebiveis.setarParametrosConsulta(getParametrosConsultaLancamentos());
        }
       
        public Date getDataRecebimento() {
                return dataRecebimento;
        }
        public void setDataRecebimento(Date dataRecebimento) {
                this.dataRecebimento = dataRecebimento;
        }
       
        public List<Parcela> getParcelasSelecionadas() {
                return parcelasSelecionadas;
        }
        public void setParcelasSelecionadas(List<Parcela> parcelasSelecionadas) {
                this.parcelasSelecionadas = parcelasSelecionadas;
        }
        public Double valorTotalParcelasSelecionadas() {
                Double total = new Double(0.0);
                if (VerificadorUtil.naoEstaNulo(getParcelasSelecionadas())) {
                        for (Parcela parcela : getParcelasSelecionadas()) {
                                total = total + parcela.getValor();
                        }
                }
                return total;
        }
       
        public TipoCartao[] getTiposCartoes() {
                return TipoCartao.values();
        }
       
        /***************************************************************/
       
        public void receberParcelas() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                parcelaService.receberParcelas(getDataRecebimento(), getParcelasSelecionadas());
                                LancadorMensagem.lancarSucesso("PARCELA(S) RECEBIDA(S) COM SUCESSO!");
                        }
                });
        }
       
       
}