Subversion Repositories Integrator Subversion

Rev

Rev 323 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
299 espaco 1
package br.com.ec.controller;
2
 
3
import java.io.Serializable;
323 espaco 4
import java.util.ArrayList;
299 espaco 5
 
6
import javax.inject.Inject;
7
import javax.inject.Named;
8
 
9
import org.primefaces.event.FlowEvent;
10
import org.springframework.context.annotation.Scope;
11
 
12
import br.com.ec.core.generic.GenericService;
13
import br.com.ec.core.util.VerificadorUtil;
14
import br.com.ec.domain.dto.PessoaDTO;
302 espaco 15
import br.com.ec.domain.model.Endereco;
303 espaco 16
import br.com.ec.domain.model.Funcionario;
299 espaco 17
import br.com.ec.domain.model.Pessoa;
302 espaco 18
import br.com.ec.domain.model.tipos.TipoDependentes;
299 espaco 19
import br.com.ec.domain.model.tipos.TipoEscolaridade;
20
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
21
import br.com.ec.domain.model.tipos.TipoPessoa;
22
import br.com.ec.domain.model.tipos.TipoRacaCor;
23
import br.com.ec.domain.service.PessoaService;
303 espaco 24
import br.com.ec.domain.shared.ConstantesSEC;
25
import br.com.ec.domain.shared.GerenciadorEmailImpl;
299 espaco 26
import br.com.ec.web.exception.VerificadorLancamentoException;
27
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
28
import br.com.ec.web.generic.AbstractBean;
29
import br.com.ec.web.message.LancadorMensagem;
30
import br.com.ec.web.util.TipoOperacao;
31
 
32
@Named
33
@Scope("view")
34
public class CadastroExternoBean extends AbstractBean<PessoaDTO> implements Serializable {
35
 
36
        private static final long serialVersionUID = 1L;
37
 
38
        private Pessoa pessoaSelecionada;
303 espaco 39
        private Funcionario funcionarioSelecionado;
302 espaco 40
        private Endereco enderecoSelecionado;
41
        private String proximoPasso;
299 espaco 42
        private PessoaService pessoaService;
43
 
44
        @Inject
45
        public CadastroExternoBean(PessoaService pessoaService) {
46
                this.pessoaService = pessoaService;
47
        }
48
 
49
        @Override
50
        public void preCarregamento() {
51
                limparEntidade();
52
        }
53
 
54
        @Override
55
        public void limparEntidade() {
56
                PessoaDTO pessoaDTO = new PessoaDTO();
57
                pessoaDTO.setTipoPessoa(TipoPessoa.FISICA_F.getValor());
302 espaco 58
                pessoaDTO.setNome("NOVATO");
299 espaco 59
                setEntidade(pessoaDTO);
60
        }
61
 
62
        @Override
63
        public GenericService<PessoaDTO> getService() {
64
                return null;
65
        }
66
 
67
        @Override
68
        public PessoaDTO getEntidade() {
69
                return entidade;
70
        }
71
 
72
        @Override
73
        public void preConsultar() {
74
                setTipoOperacao(TipoOperacao.CONSULTAR);
75
        }
76
 
77
        @Override
78
        public PessoaDTO getId() {
79
                return getEntidade();
80
        }
81
 
82
        public TipoEstadoCivil[] getTiposEstadoCivil() {
83
                return TipoEstadoCivil.values();
84
        }
85
 
86
        public TipoRacaCor[] getTiposRacaCor() {
87
                return TipoRacaCor.values();
88
        }
89
 
90
        public TipoEscolaridade[] getTiposEscolaridade() {
91
                return TipoEscolaridade.values();
92
        }
93
 
302 espaco 94
        public TipoDependentes[] getTiposDependentes() {
95
                return TipoDependentes.values();
96
        }
97
 
299 espaco 98
        public Pessoa getPessoaSelecionada() {
99
                return pessoaSelecionada;
100
        }
101
        public void setPessoaSelecionada(Pessoa pessoaSelecionada) {
102
                this.pessoaSelecionada = pessoaSelecionada;
103
        }
104
 
303 espaco 105
        public Funcionario getFuncionarioSelecionado() {
106
                return funcionarioSelecionado;
107
        }
108
        public void setFuncionarioSelecionado(Funcionario funcionarioSelecionado) {
109
                this.funcionarioSelecionado = funcionarioSelecionado;
110
        }
111
 
302 espaco 112
        public Endereco getEnderecoSelecionado() {
113
                return enderecoSelecionado;
114
        }
115
        public void setEnderecoSelecionado(Endereco enderecoSelecionado) {
116
                this.enderecoSelecionado = enderecoSelecionado;
117
        }
118
 
119
        public String getProximoPasso() {
120
                return proximoPasso;
121
        }
122
        public void setProximoPasso(String proximoPasso) {
123
                this.proximoPasso = proximoPasso;
124
        }
125
 
299 espaco 126
        /*********************************************************/
127
 
128
        public void iniciarCadastroExterno() {
129
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
130
                        public void execute() {
323 espaco 131
                                Pessoa pessoa = new Pessoa(getEntidade());
132
                                pessoa.setEnderecos(new ArrayList<Endereco>());
133
                                setPessoaSelecionada(pessoaService.cadastroExterno(null, pessoa, null, null));
303 espaco 134
                                if (getPessoaSelecionada().getNome().equals("NOVATO")) {
135
                                        getPessoaSelecionada().setNome("");
136
                                }
137
                                setFuncionarioSelecionado(getPessoaSelecionada().getFuncionario());
302 espaco 138
                                setEnderecoSelecionado(getPessoaSelecionada().primeiroEndereco());
139
                                if (VerificadorUtil.estaNulo(getEnderecoSelecionado())) {
140
                                        setEnderecoSelecionado(new Endereco(true));
141
                                }
299 espaco 142
                        }
143
                });
144
        }
145
 
415 espaco 146
        public String seguir(final FlowEvent evento) {
302 espaco 147
                setProximoPasso(evento.getOldStep());
148
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
149
                        public void execute() {
303 espaco 150
                                pessoaService.cadastroExterno(evento, getPessoaSelecionada(), getFuncionarioSelecionado(), getEnderecoSelecionado());
151
                                setFuncionarioSelecionado(getPessoaSelecionada().getFuncionario());
302 espaco 152
                                setProximoPasso(evento.getNewStep());
153
                        }
154
                });
155
        return getProximoPasso();
299 espaco 156
    }
157
 
302 espaco 158
        public void finalizarCadastro() {
159
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
160
                        public void execute() {
303 espaco 161
                                new GerenciadorEmailImpl()
162
                                        .comEmailsDestino(ConstantesSEC.DESTINATARIOS_EMAIL_RH)
323 espaco 163
                                        .comAssunto("[EC] NOVO COLABORADOR CADASTRADO")
303 espaco 164
                                        .comConteudoHtml("COLABORADOR: " + getPessoaSelecionada().getNome())
165
                                        .enviar();
302 espaco 166
                                setPessoaSelecionada(null);
167
                                setEnderecoSelecionado(null);
168
                                limparEntidade();
169
                                LancadorMensagem.lancarSucesso("CADASTRO REALIZADO COM SUCESSO");
170
                        }
171
                });
299 espaco 172
        }
173
 
174
}