Subversion Repositories Integrator Subversion

Rev

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

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