Subversion Repositories Integrator Subversion

Rev

Rev 170 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
5
import java.util.Date;
6
import java.util.HashSet;
7
import java.util.Set;
8
 
9
import javax.persistence.CascadeType;
10
import javax.persistence.Column;
11
import javax.persistence.Entity;
12
import javax.persistence.GeneratedValue;
13
import javax.persistence.GenerationType;
14
import javax.persistence.Id;
15
import javax.persistence.OneToMany;
16
import javax.persistence.SequenceGenerator;
17
import javax.persistence.Table;
18
import javax.persistence.Transient;
19
import javax.validation.Valid;
20
import javax.validation.constraints.Size;
21
 
22
import org.hibernate.validator.constraints.NotEmpty;
23
 
24
import br.com.ec.domain.model.tipos.TipoEscolaridade;
25
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
26
import br.com.ec.domain.model.tipos.TipoRacaCor;
27
import br.com.ec.domain.model.tipos.TipoSexo;
28
import br.edu.cesmac.core.interfaces.Alterar;
29
import br.edu.cesmac.core.interfaces.Cadastrar;
30
import br.edu.cesmac.core.util.StringUtil;
31
import br.edu.cesmac.core.util.VerificadorUtil;
32
import br.edu.cesmac.web.converters.FormatarUtil;
33
 
34
@Entity
35
@Table(name="sec_pessoa", schema="sc_sec")
36
public class Pessoa implements Serializable {
37
 
38
        private static final long serialVersionUID = 1L;
39
 
40
        private Long sequencial;
41
        private String nome;
42
        private String sexo;
43
        private String cpfCnpj;
44
        private String rg;
45
        private Date rgDataExpedicao;
46
        private String rgOrgaoEmissor;
47
        private String email;
48
        private String telefone;
49
        private String nacionalidade;
50
        private String nomePai;
51
        private String nomeMae;
52
        private String tipoEstadoCivil;
53
        private String tipoRacaCor;
54
        private String tipoEscolaridade;
55
        private String tamanhoFardamento;
56
        private String observacao;
57
        private Date dataNascimento;
58
        private String localNascimento;
59
        private String UfNascimento;
60
        private Set<Endereco> enderecos = new HashSet<Endereco>();
61
        private Set<DadosBancarios> dadosBancarios = new HashSet<DadosBancarios>();
62
 
63
        private String nomeFantasia;
64
        private String razaoSocial;
65
        private String tipoRegimeTributario;
66
        private String inscricaoEstadual;
67
        private String inscricaoMunicipal;
68
 
69
        private boolean ativo;
70
 
71
        @Id
72
        @SequenceGenerator(name = "sq_pessoa")
73
        @GeneratedValue(strategy=GenerationType.IDENTITY)
74
        @Column(name="seq_pessoa", nullable=false)
75
        public Long getSequencial() {
76
                return sequencial;
77
        }
78
 
79
        public void setSequencial(Long sequencial) {
80
                this.sequencial = sequencial;
81
        }
82
 
83
        @Column(name="dsc_nome")
84
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome")
85
        @NotEmpty(message="Obrigatório informar o nome", groups={Cadastrar.class, Alterar.class})
86
        public String getNome() {
87
                return nome;
88
        }
89
        public void setNome(String nome) {
90
                this.nome = StringUtil.setarUpperCaseComTrim(nome);
91
        }
92
 
93
        @Column(name="dsc_nome_fantasia")
94
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome Fantasia")
95
        public String getNomeFantasia() {
96
                return nomeFantasia;
97
        }
98
        public void setNomeFantasia(String nomeFantasia) {
99
                this.nomeFantasia = StringUtil.setarUpperCaseComTrim(nomeFantasia);
100
        }
101
 
102
        @Column(name="dsc_razao_social")
103
        @Size(max = 240, message = "Limite de caracteres ultrapassado: Razão Social")
104
        public String getRazaoSocial() {
105
                return razaoSocial;
106
        }
107
        public void setRazaoSocial(String razaoSocial) {
108
                this.razaoSocial = razaoSocial;
109
        }
110
 
111
        @Column(name="tip_sexo")
112
        public String getSexo() {
113
                return sexo;
114
        }
115
        public void setSexo(String sexo) {
116
                this.sexo = sexo;
117
        }
118
 
119
        @Column(name="dsc_cpf_cnpj")
120
        @Size(max = 20, message = "Limite de caracteres ultrapassado: CPF/CNPJ")
121
        public String getCpfCnpj() {
122
                return cpfCnpj;
123
        }
124
        public void setCpfCnpj(String cpfCnpj) {
125
                this.cpfCnpj = cpfCnpj;
126
        }
127
 
128
        @Column(name="dsc_rg")
129
        @Size(max = 20, message = "Limite de caracteres ultrapassado: RG")
130
        public String getRg() {
131
                return rg;
132
        }
133
        public void setRg(String rg) {
134
                this.rg = rg;
135
        }
136
 
137
        @Column(name="dsc_rg_dataexpedicao")
138
        public Date getRgDataExpedicao() {
139
                return rgDataExpedicao;
140
        }
141
        public void setRgDataExpedicao(Date rgDataExpedicao) {
142
                this.rgDataExpedicao = rgDataExpedicao;
143
        }
144
        @Transient
145
        public String getRgDataExpedicaoFormatada() {
146
                return VerificadorUtil.naoEstaNulo(getRgDataExpedicao())? FormatarUtil.retornarDataFormatada(getRgDataExpedicao()) : "";
147
        }
148
 
149
        @Column(name="dsc_rg_orgaoemissor")
150
        @Size(max = 10, message = "Limite de caracteres ultrapassado: RG do Orgão Emissor")
151
        public String getRgOrgaoEmissor() {
152
                return rgOrgaoEmissor;
153
        }
154
        public void setRgOrgaoEmissor(String rgOrgaoEmissor) {
155
                this.rgOrgaoEmissor = rgOrgaoEmissor;
156
        }
157
 
158
        @Column(name="dsc_inscricao_estadual")
159
        @Size(max = 15, message = "Limite de caracteres ultrapassado: Inscrição Estadual")
160
        public String getInscricaoEstadual() {
161
                return inscricaoEstadual;
162
        }
163
        public void setInscricaoEstadual(String inscricaoEstadual) {
164
                this.inscricaoEstadual = inscricaoEstadual;
165
        }
166
 
167
        @Column(name="dsc_inscricao_municipal")
168
        @Size(max = 15, message = "Limite de caracteres ultrapassado: Inscrição Municipal")
169
        public String getInscricaoMunicipal() {
170
                return inscricaoMunicipal;
171
        }
172
        public void setInscricaoMunicipal(String inscricaoMunicipal) {
173
                this.inscricaoMunicipal = inscricaoMunicipal;
174
        }
175
 
176
        @Column(name="tip_regime_tributario")
177
        public String getTipoRegimeTributario() {
178
                return tipoRegimeTributario;
179
        }
180
        public void setTipoRegimeTributario(String tipoRegimeTributario) {
181
                this.tipoRegimeTributario = tipoRegimeTributario;
182
        }
183
 
184
        @Column(name="dsc_email")
185
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Email")
186
        public String getEmail() {
187
                return email;
188
        }
189
        public void setEmail(String email) {
190
                this.email = email;
191
        }
192
 
193
        @Column(name="dsc_telefone")
194
        @Size(max = 11, message = "Limite de caracteres ultrapassado: Telefone")
195
        public String getTelefone() {
196
                return telefone;
197
        }
198
        public void setTelefone(String telefone) {
199
                this.telefone = telefone;
200
        }
201
 
202
        @Column(name="dsc_nacionalidade")
203
        @Size(max = 20, message = "Limite de caracteres ultrapassado: Nacionalidade")
204
        public String getNacionalidade() {
205
                return nacionalidade;
206
        }
207
        public void setNacionalidade(String nacionalidade) {
208
                this.nacionalidade = StringUtil.setarUpperCaseComTrim(nacionalidade);
209
        }
210
 
211
        @Column(name="dsc_nome_pai")
212
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome do Pai")
213
        public String getNomePai() {
214
                return nomePai;
215
        }
216
        public void setNomePai(String nomePai) {
217
                this.nomePai = StringUtil.setarUpperCaseComTrim(nomePai);
218
        }
219
 
220
        @Column(name="dsc_nome_mae")
221
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome da Mãe")
222
        public String getNomeMae() {
223
                return nomeMae;
224
        }
225
        public void setNomeMae(String nomeMae) {
226
                this.nomeMae = StringUtil.setarUpperCaseComTrim(nomeMae);
227
        }
228
 
229
        @Column(name="tip_estado_civil")
230
        public String getTipoEstadoCivil() {
231
                return tipoEstadoCivil;
232
        }
233
        public void setTipoEstadoCivil(String tipoEstadoCivil) {
234
                this.tipoEstadoCivil = tipoEstadoCivil;
235
        }
236
        @Transient
237
        public String getDescricaoDoEstadoCivil() {
238
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? TipoEstadoCivil.parse(getTipoEstadoCivil()).getDescricao() : null;
239
        }
240
 
241
        @Column(name="tip_raca_cor")
242
        public String getTipoRacaCor() {
243
                return tipoRacaCor;
244
        }
245
        public void setTipoRacaCor(String tipoRacaCor) {
246
                this.tipoRacaCor = tipoRacaCor;
247
        }
248
        @Transient
249
        public String getDescricaoDaRacaCor() {
250
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? TipoRacaCor.parse(getTipoRacaCor()).getDescricao() : null;
251
        }
252
 
253
        @Column(name="tip_escolaridade")
254
        public String getTipoEscolaridade() {
255
                return tipoEscolaridade;
256
        }
257
        public void setTipoEscolaridade(String tipoEscolaridade) {
258
                this.tipoEscolaridade = tipoEscolaridade;
259
        }
260
        @Transient
261
        public String getDescricaoDaEscolaridade() {
262
                return VerificadorUtil.naoEstaNulo(getTipoEscolaridade())? TipoEscolaridade.parse(getTipoEscolaridade()).getDescricao() : null;
263
        }
264
 
265
        @Column(name="dsc_tamanho_fardamento")
266
        public String getTamanhoFardamento() {
267
                return tamanhoFardamento;
268
        }
269
        public void setTamanhoFardamento(String tamanhoFardamento) {
270
                this.tamanhoFardamento = StringUtil.setarUpperCaseComTrim(tamanhoFardamento);
271
        }
272
 
273
        @Column(name="dsc_observacao")
274
        @Size(max = 240, message = "Limite de caracteres ultrapassado: Observação")
275
        public String getObservacao() {
276
                return observacao;
277
        }
278
        public void setObservacao(String observacao) {
279
                this.observacao = StringUtil.setarUpperCaseComTrim(observacao);
280
        }
281
 
282
        @Column(name="dat_nascimento")
283
        public Date getDataNascimento() {
284
                return dataNascimento;
285
        }
286
        public void setDataNascimento(Date dataNascimento) {
287
                this.dataNascimento = dataNascimento;
288
        }
289
        @Transient
290
        public String getDataNascimentoFormatada() {
291
                return VerificadorUtil.naoEstaNulo(getDataNascimento())? FormatarUtil.retornarDataFormatada(getDataNascimento()) : "";
292
        }
293
 
294
        @Column(name="dsc_nascimento_local")
295
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Local do Nascimento")
296
        public String getLocalNascimento() {
297
                return localNascimento;
298
        }
299
        public void setLocalNascimento(String localNascimento) {
300
                this.localNascimento = localNascimento;
301
        }
302
 
303
        @Column(name="dsc_nascimento_uf")
304
        @Size(max = 2, message = "Limite de caracteres ultrapassado: UF do Nascimento")
305
        public String getUfNascimento() {
306
                return UfNascimento;
307
        }
308
        public void setUfNascimento(String ufNascimento) {
309
                UfNascimento = ufNascimento;
310
        }
311
 
312
        @Valid
313
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
314
        public Set<Endereco> getEnderecos() {
315
                return enderecos;
316
        }
317
        public void setEnderecos(Set<Endereco> enderecos) {
318
                this.enderecos = enderecos;
319
        }
320
 
321
        @Valid
322
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
323
        public Set<DadosBancarios> getDadosBancarios() {
324
                return dadosBancarios;
325
        }
326
 
327
        public void setDadosBancarios(Set<DadosBancarios> dadosBancarios) {
328
                this.dadosBancarios = dadosBancarios;
329
        }
330
 
331
        @Column(name="ind_ativo", nullable=false)
332
        public Boolean getAtivo() {
333
                return ativo;
334
        }
335
 
336
        public void setAtivo(Boolean ativo) {
337
                this.ativo = ativo;
338
        }
339
 
340
        @Override
341
        public int hashCode() {
342
                final int prime = 31;
343
                int result = 1;
344
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
345
                return result;
346
        }
347
 
348
        @Override
349
        public boolean equals(Object obj) {
350
                if (this == obj)
351
                        return true;
352
                if (obj == null)
353
                        return false;
354
                if (getClass() != obj.getClass())
355
                        return false;
356
                Pessoa other = (Pessoa) obj;
357
                if (sequencial == null) {
358
                        if (other.sequencial != null)
359
                                return false;
360
                } else if (!sequencial.equals(other.sequencial))
361
                        return false;
362
                return true;
363
        }
364
 
365
        @Transient
366
        public String getCpfCnpjFormatado() {
367
                return VerificadorUtil.naoEstaNulo(getCpfCnpj())? FormatarUtil.retornarCpfCnpjFormatado(getCpfCnpj()) : "";
368
        }
369
 
370
        @Transient
371
        public Endereco getEnderecoPrincipal() {
372
                ArrayList<Endereco> enderecos = new ArrayList<>(getEnderecos());
373
                return VerificadorUtil.isListaNulaOuVazia(enderecos)? null : enderecos.get(0);
374
        }
375
 
376
        @Transient
377
        public Boolean getEstadoCivilEhSolteiro() {
378
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.SOLTEIRO_S.getValor()) : false;
379
        }
380
        @Transient
381
        public Boolean getEstadoCivilEhCasado() {
382
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.CASADO_C.getValor()) : false;
383
        }
384
        @Transient
385
        public Boolean getEstadoCivilEhDivorciado() {
386
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.DIVORCIADO_D.getValor()) : false;
387
        }
388
        @Transient
389
        public Boolean getEstadoCivilEhViuvo() {
390
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.VIUVO_V.getValor()) : false;
391
        }
392
        @Transient
393
        public Boolean getEstadoCivilEhUniaoEstavel() {
394
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.UNIAO_ESTAVEL_U.getValor()) : false;
395
        }
396
        @Transient
397
        public Boolean getEstadoCivilEhOutros() {
398
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.OUTROS_O.getValor()) : false;
399
        }
400
 
401
        @Transient
402
        public Boolean getSexoEhMasculino() {
403
                return VerificadorUtil.naoEstaNulo(getSexo())? getSexo().equals(TipoSexo.MASCULINO.getValor()) : false;
404
        }
405
        @Transient
406
        public Boolean getSexoEhFeminino() {
407
                return VerificadorUtil.naoEstaNulo(getSexo())? getSexo().equals(TipoSexo.FEMININO.getValor()) : false;
408
        }
409
 
410
        @Transient
411
        public Boolean getRacaCorEhIndigena() {
412
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.INDIGENA.getValor()) : false;
413
        }
414
        @Transient
415
        public Boolean getRacaCorEhBranca() {
416
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.BRANCA.getValor()) : false;
417
        }
418
        @Transient
419
        public Boolean getRacaCorEhNegra() {
420
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.NEGRA.getValor()) : false;
421
        }
422
        @Transient
423
        public Boolean getRacaCorEhAmarela() {
424
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.AMARELA.getValor()) : false;
425
        }
426
        @Transient
427
        public Boolean getRacaCorEhParda() {
428
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.PARDA.getValor()) : false;
429
        }
430
        @Transient
431
        public Boolean getRacaCorEhNaoInformada() {
432
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.NAO_INFORMADA.getValor()) : false;
433
        }
434
 
435
}