Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller;

import java.io.Serializable;

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

import org.primefaces.event.FlowEvent;
import org.springframework.context.annotation.Scope;

import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.PessoaDTO;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.domain.model.tipos.TipoEscolaridade;
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
import br.com.ec.domain.model.tipos.TipoPessoa;
import br.com.ec.domain.model.tipos.TipoRacaCor;
import br.com.ec.domain.service.PessoaService;
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;
import br.com.ec.web.util.TipoOperacao;

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

        private static final long serialVersionUID = 1L;
       
        private Pessoa pessoaSelecionada;
        private PessoaService pessoaService;
       
        @Inject
        public CadastroExternoBean(PessoaService pessoaService) {
                this.pessoaService = pessoaService;
        }
       
        @Override
        public void preCarregamento() {
                limparEntidade();
        }

        @Override
        public void limparEntidade() {
                PessoaDTO pessoaDTO = new PessoaDTO();
                pessoaDTO.setTipoPessoa(TipoPessoa.FISICA_F.getValor());
                setEntidade(pessoaDTO);
        }

        @Override
        public GenericService<PessoaDTO> getService() {
                return null;
        }
       
        @Override
        public PessoaDTO getEntidade() {
                return entidade;
        }
       
        @Override
        public void preConsultar() {
                setTipoOperacao(TipoOperacao.CONSULTAR);
        }

        @Override
        public PessoaDTO getId() {
                return getEntidade();
        }
       
        public TipoEstadoCivil[] getTiposEstadoCivil() {
                return TipoEstadoCivil.values();
        }
       
        public TipoRacaCor[] getTiposRacaCor() {
                return TipoRacaCor.values();
        }
       
        public TipoEscolaridade[] getTiposEscolaridade() {
                return TipoEscolaridade.values();
        }
       
        public Pessoa getPessoaSelecionada() {
                return pessoaSelecionada;
        }
        public void setPessoaSelecionada(Pessoa pessoaSelecionada) {
                this.pessoaSelecionada = pessoaSelecionada;
        }
       
        /*********************************************************/
       
        public void iniciarCadastroExterno() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                setPessoaSelecionada(pessoaService.cadastroExterno(null, new Pessoa(getEntidade())));
                        }
                });
        }
       
        public String seguir(FlowEvent evento) {
                pessoaService.cadastroExterno(evento, getPessoaSelecionada());
        return evento.getNewStep();
    }
       
        public void confirmarCadastro() {
                // SALVAR
                // ENVIAR EMAIL DE CONFIRMAÇÃO DE CADASTRO
        }
       
}