Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
695 blopes 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.List;
7
 
8
import javax.persistence.CascadeType;
9
import javax.persistence.Column;
10
import javax.persistence.Entity;
11
import javax.persistence.FetchType;
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.constraints.Size;
20
 
21
import org.hibernate.validator.constraints.NotEmpty;
22
 
23
import br.com.ec.core.interfaces.Alterar;
24
import br.com.ec.core.interfaces.Cadastrar;
25
import br.com.ec.core.util.StringUtil;
26
import br.com.ec.core.util.VerificadorUtil;
27
import br.com.ec.domain.dto.PessoaDTO;
28
import br.com.ec.domain.model.tipos.TipoDependentes;
29
import br.com.ec.domain.model.tipos.TipoEscolaridade;
30
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
736 blopes 31
import br.com.ec.domain.model.tipos.TipoNotaFiscalInscricaoEstadual;
695 blopes 32
import br.com.ec.domain.model.tipos.TipoPessoa;
33
import br.com.ec.domain.model.tipos.TipoRacaCor;
34
import br.com.ec.domain.model.tipos.TipoSexo;
35
import br.com.ec.web.converters.FormatarUtil;
36
 
37
@Entity
736 blopes 38
@Table(name="sec_pessoa", schema="sc_lse")
695 blopes 39
public class Pessoa implements Serializable {
40
 
41
        private static final long serialVersionUID = 1L;
42
 
43
        private Long sequencial;
44
        private String nome;
45
        private String tipoPessoa;
46
        private String cpfCnpj;
47
        private String email;
48
        private String telefone;
49
        private String contato;
50
        private String observacao;
51
 
52
        //      PESSOA FÍSICA
53
        private String sexo;
54
        private String rg;
55
        private Date rgDataExpedicao;
56
        private String rgOrgaoEmissor;
57
        private Date dataNascimento;
58
        private String nacionalidade;
59
        private String localNascimento;
60
        private String ufNascimento;
61
        private String nomePai;
62
        private String nomeMae;
63
        private String tipoEstadoCivil;
64
        private String tipoRacaCor;
65
        private String tipoEscolaridade;
66
 
67
        private Boolean pessoaDeficienteMotora;
68
        private Boolean pessoaDeficienteVisual;
69
        private Boolean pessoaDeficienteAuditiva;
70
        private Boolean pessoaReabilitado;
71
        private String pessoaDeficienteObservacao;
72
 
73
        private String tipoDependendes;
74
        private String dadosDependentes;
75
        private Boolean dependentesFinsIRRF;
76
        private Boolean dependentesFinsSalarioFamilia;
77
 
78
        //      PESSOA JURÍDICA
79
        private String nomeFantasia;
80
        private String razaoSocial;
81
        private String inscricaoEstadual;
82
        private String tipoInscricaoEstadual;
83
        private String inscricaoMunicipal;
84
        private String tipoRegimeTributario;
85
 
86
        //      CLIENTE
87
        private Boolean indicadorNovidades;
88
 
89
        private Boolean cadastroFinalizado;
90
        private boolean ativo;
91
 
92
        private List<Endereco> enderecos;
93
        private List<PessoaPapel> papeis;
94
        private Funcionario funcionario;
95
 
96
        public Pessoa() {
97
//              setTipoPessoa(TipoPessoa.FISICA_F.getValor());
98
//              setInscricaoEstadualIsento(false);
99
                /*
100
                setPapeis(new HashSet<PessoaPapel>());
101
                setEnderecos(new HashSet<Endereco>());
102
                setDadosBancarios(new HashSet<DadosBancarios>());
103
                */
104
        }
105
 
106
        public Pessoa(PessoaDTO pessoaDTO) {
107
                this.sequencial = pessoaDTO.getSequencial();
108
                this.nome = pessoaDTO.getNome();
109
                this.tipoPessoa = pessoaDTO.getTipoPessoa();
110
                this.cpfCnpj = pessoaDTO.getCpfCnpj();
111
                this.email = pessoaDTO.getEmail();
112
                this.telefone = pessoaDTO.getTelefone();
113
                this.contato = pessoaDTO.getContato();
114
                this.observacao = pessoaDTO.getObservacao();
115
 
116
        //      PESSOA FÍSICA
117
                this.sexo = pessoaDTO.getSexo();
118
                this.rg = pessoaDTO.getRg();
119
                this.rgDataExpedicao = pessoaDTO.getRgDataExpedicao();
120
                this.rgOrgaoEmissor = pessoaDTO.getRgOrgaoEmissor();
121
                this.dataNascimento = pessoaDTO.getDataNascimento();
122
                this.nacionalidade = pessoaDTO.getNacionalidade();
123
                this.localNascimento = pessoaDTO.getLocalNascimento();
124
                this.ufNascimento = pessoaDTO.getUfNascimento();
125
                this.nomePai = pessoaDTO.getNomePai();
126
                this.nomeMae = pessoaDTO.getNomeMae();
127
                this.tipoEstadoCivil = pessoaDTO.getTipoEstadoCivil();
128
                this.tipoRacaCor = pessoaDTO.getTipoRacaCor();
129
                this.tipoEscolaridade = pessoaDTO.getTipoEscolaridade();
130
        }
131
 
132
        //      PESSOA JURÍDICA
133
                /*
134
                this.nomeFantasia = pessoaDTO.getN;
135
                this.razaoSocial = pessoaDTO.;
136
                this.inscricaoEstadual = pessoaDTO.;
137
                this.inscricaoEstadualIsento = pessoaDTO.;
138
                this.inscricaoMunicipal = pessoaDTO.;
139
                this.tipoRegimeTributario = pessoaDTO.;
140
                */
141
 
142
        public Pessoa(Long sequencialPessoa) {
143
                this.sequencial = sequencialPessoa;
144
        }
145
 
146
        @Id
147
        @SequenceGenerator(name = "sq_pessoa")
148
        @GeneratedValue(strategy=GenerationType.IDENTITY)
149
        @Column(name="seq_pessoa", nullable=false)
150
        public Long getSequencial() {
151
                return sequencial;
152
        }
153
        public void setSequencial(Long sequencial) {
154
                this.sequencial = sequencial;
155
        }
156
 
157
        @Column(name="dsc_nome")
158
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome")
159
        @NotEmpty(message="Obrigatório informar o nome", groups={Cadastrar.class, Alterar.class})
160
        public String getNome() {
161
                return nome;
162
        }
163
        public void setNome(String nome) {
164
                this.nome = StringUtil.setarUpperCaseComTrim(nome);
165
        }
166
 
167
        @Column(name="tip_pessoa")
168
        public String getTipoPessoa() {
169
                return tipoPessoa;
170
        }
171
        public void setTipoPessoa(String tipoPessoa) {
172
                this.tipoPessoa = tipoPessoa;
173
        }
174
        @Transient
175
        public String getDescricaoDoTipoDaPessoa() {
176
                return VerificadorUtil.naoEstaNulo(getTipoPessoa())? TipoPessoa.parse(getTipoPessoa()).getDescricao() : null;
177
        }
178
 
179
        @Column(name="dsc_cpf_cnpj")
180
        @Size(max = 20, message = "Limite de caracteres ultrapassado: CPF/CNPJ")
181
        public String getCpfCnpj() {
182
                return cpfCnpj;
183
        }
184
        public void setCpfCnpj(String cpfCnpj) {
185
                this.cpfCnpj = cpfCnpj;
186
        }
187
 
188
        @Column(name="dsc_email")
189
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Email")
190
        public String getEmail() {
191
                return email;
192
        }
193
        public void setEmail(String email) {
194
                this.email = StringUtil.setarLowerCase(email);
195
        }
196
 
197
        @Column(name="dsc_telefone")
198
        @Size(max = 11, message = "Limite de caracteres ultrapassado: Telefone")
199
        public String getTelefone() {
200
                return telefone;
201
        }
202
        public void setTelefone(String telefone) {
203
                this.telefone = telefone;
204
        }
205
 
206
        @Column(name="dsc_contato")
207
        public String getContato() {
208
                return contato;
209
        }
210
        public void setContato(String contato) {
211
                this.contato = contato;
212
        }
213
 
214
        @Column(name="dsc_observacao")
215
        @Size(max = 240, message = "Limite de caracteres ultrapassado: Observação")
216
        public String getObservacao() {
217
                return observacao;
218
        }
219
        public void setObservacao(String observacao) {
220
                this.observacao = StringUtil.setarUpperCaseComTrim(observacao);
221
        }
222
        /*
223
        @Valid
224
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
225
        public Set<PessoaPapel> getPapeis() {
226
                return papeis;
227
        }
228
        public void setPapeis(Set<PessoaPapel> papeis) {
229
                this.papeis = papeis;
230
        }
231
        */
232
        @Column(name="tip_sexo")
233
        public String getSexo() {
234
                return sexo;
235
        }
236
        public void setSexo(String sexo) {
237
                this.sexo = sexo;
238
        }
239
        @Transient
240
        public String getDescricaoDoSexo() {
241
                return VerificadorUtil.naoEstaNulo(getSexo())? TipoSexo.parse(getSexo()).getDescricao() : null;
242
        }
243
 
244
        @Column(name="dsc_rg")
245
        @Size(max = 20, message = "Limite de caracteres ultrapassado: RG")
246
        public String getRg() {
247
                return rg;
248
        }
249
        public void setRg(String rg) {
250
                this.rg = rg;
251
        }
252
 
253
        @Column(name="dsc_rg_orgaoemissor")
254
        @Size(max = 10, message = "Limite de caracteres ultrapassado: Orgão Emissor do RG")
255
        public String getRgOrgaoEmissor() {
256
                return rgOrgaoEmissor;
257
        }
258
        public void setRgOrgaoEmissor(String rgOrgaoEmissor) {
259
                this.rgOrgaoEmissor = StringUtil.setarUpperCaseComTrim(rgOrgaoEmissor);
260
        }
261
 
262
        @Column(name="dsc_rg_dataexpedicao")
263
        public Date getRgDataExpedicao() {
264
                return rgDataExpedicao;
265
        }
266
        public void setRgDataExpedicao(Date rgDataExpedicao) {
267
                this.rgDataExpedicao = rgDataExpedicao;
268
        }
269
        @Transient
270
        public String getRgDataExpedicaoFormatada() {
271
                return VerificadorUtil.naoEstaNulo(getRgDataExpedicao())? FormatarUtil.retornarDataFormatada(getRgDataExpedicao()) : "";
272
        }
273
 
274
        @Column(name="dat_nascimento")
275
        public Date getDataNascimento() {
276
                return dataNascimento;
277
        }
278
        public void setDataNascimento(Date dataNascimento) {
279
                this.dataNascimento = dataNascimento;
280
        }
281
        @Transient
282
        public String getDataNascimentoFormatada() {
283
                return VerificadorUtil.naoEstaNulo(getDataNascimento())? FormatarUtil.retornarDataFormatada(getDataNascimento()) : "";
284
        }
285
 
286
        @Column(name="dsc_nacionalidade")
287
        @Size(max = 20, message = "Limite de caracteres ultrapassado: Nacionalidade")
288
        public String getNacionalidade() {
289
                return nacionalidade;
290
        }
291
        public void setNacionalidade(String nacionalidade) {
292
                this.nacionalidade = StringUtil.setarUpperCaseComTrim(nacionalidade);
293
        }
294
 
295
        @Column(name="dsc_nascimento_local")
296
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Local do Nascimento")
297
        public String getLocalNascimento() {
298
                return localNascimento;
299
        }
300
        public void setLocalNascimento(String localNascimento) {
301
                this.localNascimento = StringUtil.setarUpperCaseComTrim(localNascimento);
302
        }
303
 
304
        @Column(name="dsc_nascimento_uf")
305
        @Size(max = 2, message = "Limite de caracteres ultrapassado: UF do Nascimento")
306
        public String getUfNascimento() {
307
                return ufNascimento;
308
        }
309
        public void setUfNascimento(String ufNascimento) {
310
                this.ufNascimento = StringUtil.setarUpperCaseComTrim(ufNascimento);
311
        }
312
 
313
        @Column(name="dsc_nome_pai")
314
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome do Pai")
315
        public String getNomePai() {
316
                return nomePai;
317
        }
318
        public void setNomePai(String nomePai) {
319
                this.nomePai = StringUtil.setarUpperCaseComTrim(nomePai);
320
        }
321
 
322
        @Column(name="dsc_nome_mae")
323
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome da Mãe")
324
        public String getNomeMae() {
325
                return nomeMae;
326
        }
327
        public void setNomeMae(String nomeMae) {
328
                this.nomeMae = StringUtil.setarUpperCaseComTrim(nomeMae);
329
        }
330
 
331
        @Column(name="tip_estado_civil")
332
        public String getTipoEstadoCivil() {
333
                return tipoEstadoCivil;
334
        }
335
        public void setTipoEstadoCivil(String tipoEstadoCivil) {
336
                this.tipoEstadoCivil = tipoEstadoCivil;
337
        }
338
        @Transient
339
        public String getDescricaoDoEstadoCivil() {
340
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? TipoEstadoCivil.parse(getTipoEstadoCivil()).getDescricao() : null;
341
        }
342
 
343
        @Column(name="tip_raca_cor")
344
        public String getTipoRacaCor() {
345
                return tipoRacaCor;
346
        }
347
        public void setTipoRacaCor(String tipoRacaCor) {
348
                this.tipoRacaCor = tipoRacaCor;
349
        }
350
        @Transient
351
        public String getDescricaoDaRacaCor() {
352
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? TipoRacaCor.parse(getTipoRacaCor()).getDescricao() : null;
353
        }
354
 
355
        @Column(name="tip_escolaridade")
356
        public String getTipoEscolaridade() {
357
                return tipoEscolaridade;
358
        }
359
        public void setTipoEscolaridade(String tipoEscolaridade) {
360
                this.tipoEscolaridade = tipoEscolaridade;
361
        }
362
        @Transient
363
        public String getDescricaoDaEscolaridade() {
364
                return VerificadorUtil.naoEstaNulo(getTipoEscolaridade())? TipoEscolaridade.parse(getTipoEscolaridade()).getDescricao() : null;
365
        }
366
 
367
        @Column(name="ind_deficiente_motora")
368
        public Boolean getPessoaDeficienteMotora() {
369
                return pessoaDeficienteMotora;
370
        }
371
        public void setPessoaDeficienteMotora(Boolean pessoaDeficienteMotora) {
372
                this.pessoaDeficienteMotora = pessoaDeficienteMotora;
373
        }
374
 
375
        @Column(name="ind_deficiente_visual")
376
        public Boolean getPessoaDeficienteVisual() {
377
                return pessoaDeficienteVisual;
378
        }
379
        public void setPessoaDeficienteVisual(Boolean pessoaDeficienteVisual) {
380
                this.pessoaDeficienteVisual = pessoaDeficienteVisual;
381
        }
382
 
383
        @Column(name="ind_deficiente_auditiva")
384
        public Boolean getPessoaDeficienteAuditiva() {
385
                return pessoaDeficienteAuditiva;
386
        }
387
        public void setPessoaDeficienteAuditiva(Boolean pessoaDeficienteAuditiva) {
388
                this.pessoaDeficienteAuditiva = pessoaDeficienteAuditiva;
389
        }
390
 
391
        @Column(name="ind_reabilitado")
392
        public Boolean getPessoaReabilitado() {
393
                return pessoaReabilitado;
394
        }
395
        public void setPessoaReabilitado(Boolean pessoaReabilitado) {
396
                this.pessoaReabilitado = pessoaReabilitado;
397
        }
398
 
399
        @Column(name="dsc_deficiente_observacao")
400
        @Size(max = 200, message = "Limite de caracteres ultrapassado: OBSERVAÇÕES DA DEFICIÊNCIA")
401
        public String getPessoaDeficienteObservacao() {
402
                return pessoaDeficienteObservacao;
403
        }
404
        public void setPessoaDeficienteObservacao(String pessoaDeficienteObservacao) {
405
                this.pessoaDeficienteObservacao = StringUtil.setarUpperCaseComTrim(pessoaDeficienteObservacao);;
406
        }
407
 
408
        @Column(name="tip_dependentes")
409
        public String getTipoDependendes() {
410
                return tipoDependendes;
411
        }
412
        public void setTipoDependendes(String tipoDependendes) {
413
                this.tipoDependendes = tipoDependendes;
414
        }
415
        @Transient
416
        public String getDescricaoTipoDependentes() {
417
                return VerificadorUtil.naoEstaNulo(getTipoDependendes())? TipoDependentes.parse(getTipoDependendes()).getDescricao() : null;
418
        }
419
 
420
        @Column(name="dsc_dados_dependentes")
421
        @Size(max = 400, message = "Limite de caracteres ultrapassado: DADOS DOS DEPENDENTES")
422
        public String getDadosDependentes() {
423
                return dadosDependentes;
424
        }
425
        public void setDadosDependentes(String dadosDependentes) {
426
                this.dadosDependentes = StringUtil.setarUpperCaseComTrim(dadosDependentes);
427
        }
428
 
429
        @Column(name="ind_dependentes_irrf")
430
        public Boolean getDependentesFinsIRRF() {
431
                return dependentesFinsIRRF;
432
        }
433
        public void setDependentesFinsIRRF(Boolean dependentesFinsIRRF) {
434
                this.dependentesFinsIRRF = dependentesFinsIRRF;
435
        }
436
 
437
        @Column(name="ind_dependentes_salariofamilia")
438
        public Boolean getDependentesFinsSalarioFamilia() {
439
                return dependentesFinsSalarioFamilia;
440
        }
441
        public void setDependentesFinsSalarioFamilia(Boolean dependentesFinsSalarioFamilia) {
442
                this.dependentesFinsSalarioFamilia = dependentesFinsSalarioFamilia;
443
        }
444
 
445
        @Column(name="dsc_nome_fantasia")
446
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome Fantasia")
447
        public String getNomeFantasia() {
448
                return nomeFantasia;
449
        }
450
        public void setNomeFantasia(String nomeFantasia) {
451
                this.nomeFantasia = StringUtil.setarUpperCaseComTrim(nomeFantasia);
452
        }
453
 
454
        @Column(name="dsc_razao_social")
455
        @Size(max = 240, message = "Limite de caracteres ultrapassado: Razão Social")
456
        public String getRazaoSocial() {
457
                return razaoSocial;
458
        }
459
        public void setRazaoSocial(String razaoSocial) {
460
                this.razaoSocial = StringUtil.setarUpperCaseComTrim(razaoSocial);
461
        }
462
 
463
        @Column(name="dsc_inscricao_estadual")
464
        @Size(max = 15, message = "Limite de caracteres ultrapassado: Inscrição Estadual")
465
        public String getInscricaoEstadual() {
466
                return inscricaoEstadual;
467
        }
468
        public void setInscricaoEstadual(String inscricaoEstadual) {
469
                this.inscricaoEstadual = inscricaoEstadual;
470
        }
471
 
472
        @Column(name="tip_inscricao_estadual")
473
        public String getTipoInscricaoEstadual() {
474
                return tipoInscricaoEstadual;
475
        }
476
        public void setTipoInscricaoEstadual(String tipoInscricaoEstadual) {
477
                this.tipoInscricaoEstadual = tipoInscricaoEstadual;
478
        }
479
        @Transient
480
        public String getNomenclaturaTipoInscricaoEstadual() {
481
                return VerificadorUtil.naoEstaNulo(getTipoInscricaoEstadual())? TipoNotaFiscalInscricaoEstadual.parse(getTipoInscricaoEstadual()).getNomenclaturaNotaFiscal() : "";
482
        }
483
 
484
        @Column(name="dsc_inscricao_municipal")
485
        @Size(max = 15, message = "Limite de caracteres ultrapassado: Inscrição Municipal")
486
        public String getInscricaoMunicipal() {
487
                return inscricaoMunicipal;
488
        }
489
        public void setInscricaoMunicipal(String inscricaoMunicipal) {
490
                this.inscricaoMunicipal = inscricaoMunicipal;
491
        }
492
 
493
        @Column(name="tip_regime_tributario")
494
        public String getTipoRegimeTributario() {
495
                return tipoRegimeTributario;
496
        }
497
        public void setTipoRegimeTributario(String tipoRegimeTributario) {
498
                this.tipoRegimeTributario = tipoRegimeTributario;
499
        }
736 blopes 500
 
695 blopes 501
        @Column(name="ind_novidades")
502
        public Boolean getIndicadorNovidades() {
503
                return indicadorNovidades;
504
        }
505
        public void setIndicadorNovidades(Boolean indicadorNovidades) {
506
                this.indicadorNovidades = indicadorNovidades;
507
        }
508
        /*
509
        @Valid
510
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
511
        public Set<DadosBancarios> getDadosBancarios() {
512
                return dadosBancarios;
513
        }
514
 
515
        public void setDadosBancarios(Set<DadosBancarios> dadosBancarios) {
516
                this.dadosBancarios = dadosBancarios;
517
        }
518
        */
519
 
520
        @Column(name="ind_cadastro_finalizado", nullable=false)
521
        public Boolean getCadastroFinalizado() {
522
                return cadastroFinalizado;
523
        }
524
        public void setCadastroFinalizado(Boolean cadastroFinalizado) {
525
                this.cadastroFinalizado = cadastroFinalizado;
526
        }
527
 
528
        @Column(name="ind_ativo", nullable=false)
529
        public Boolean getAtivo() {
530
                return ativo;
531
        }
532
 
533
        public void setAtivo(Boolean ativo) {
534
                this.ativo = ativo;
535
        }
536
 
537
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, fetch=FetchType.LAZY, orphanRemoval=true)
538
        public List<Endereco> getEnderecos() {
539
                return enderecos;
540
        }
541
        public void setEnderecos(List<Endereco> enderecos) {
542
                this.enderecos = enderecos;
543
        }
544
 
545
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, fetch=FetchType.EAGER, orphanRemoval=true)
546
        public List<PessoaPapel> getPapeis() {
547
                return papeis;
548
        }
549
        public void setPapeis(List<PessoaPapel> papeis) {
550
                this.papeis = papeis;
551
        }
552
 
553
        @Transient
554
        public Funcionario getFuncionario() {
555
                return funcionario;
556
        }
557
        public void setFuncionario(Funcionario funcionario) {
558
                this.funcionario = funcionario;
559
        }
560
 
561
        /*******************************************************/
562
 
563
        @Override
564
        public int hashCode() {
565
                final int prime = 31;
566
                int result = 1;
567
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
568
                return result;
569
        }
570
 
571
        @Override
572
        public boolean equals(Object obj) {
573
                if (this == obj)
574
                        return true;
575
                if (obj == null)
576
                        return false;
577
                if (getClass() != obj.getClass())
578
                        return false;
579
                Pessoa other = (Pessoa) obj;
580
                if (sequencial == null) {
581
                        if (other.sequencial != null)
582
                                return false;
583
                } else if (!sequencial.equals(other.sequencial))
584
                        return false;
585
                return true;
586
        }
587
 
588
        @Transient
589
        public Boolean ehTipoPessoaFisica() {
590
                return getTipoPessoa().equals(TipoPessoa.FISICA_F.getValor());
591
        }
592
 
593
        @Transient
594
        public Boolean ehTipoPessoaJuridica() {
595
                return getTipoPessoa().equals(TipoPessoa.JURIDICA_J.getValor());
596
        }
597
 
598
        @Transient
599
        public String getCpfCnpjFormatado() {
600
                return VerificadorUtil.naoEstaNulo(getCpfCnpj())? FormatarUtil.retornarCpfCnpjFormatado(getCpfCnpj()) : "";
601
        }
602
 
603
        @Transient
604
        public Endereco getEnderecoPrincipal() {
605
                ArrayList<Endereco> enderecos = new ArrayList<>(getEnderecos());
606
                return VerificadorUtil.isListaNulaOuVazia(enderecos)? null : enderecos.get(0);
607
        }
608
 
609
        @Transient
610
        public Boolean getEstadoCivilEhSolteiro() {
611
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.SOLTEIRO_S.getValor()) : false;
612
        }
613
        @Transient
614
        public Boolean getEstadoCivilEhCasado() {
615
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.CASADO_C.getValor()) : false;
616
        }
617
        @Transient
618
        public Boolean getEstadoCivilEhDivorciado() {
619
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.DIVORCIADO_D.getValor()) : false;
620
        }
621
        @Transient
622
        public Boolean getEstadoCivilEhViuvo() {
623
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.VIUVO_V.getValor()) : false;
624
        }
625
        @Transient
626
        public Boolean getEstadoCivilEhUniaoEstavel() {
627
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.UNIAO_ESTAVEL_U.getValor()) : false;
628
        }
629
        @Transient
630
        public Boolean getEstadoCivilEhOutros() {
631
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.OUTROS_O.getValor()) : false;
632
        }
633
 
634
        @Transient
635
        public Boolean getSexoEhMasculino() {
636
                return VerificadorUtil.naoEstaNulo(getSexo())? getSexo().equals(TipoSexo.MASCULINO.getValor()) : false;
637
        }
638
        @Transient
639
        public Boolean getSexoEhFeminino() {
640
                return VerificadorUtil.naoEstaNulo(getSexo())? getSexo().equals(TipoSexo.FEMININO.getValor()) : false;
641
        }
642
 
643
        @Transient
644
        public Boolean getRacaCorEhIndigena() {
645
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.INDIGENA.getValor()) : false;
646
        }
647
        @Transient
648
        public Boolean getRacaCorEhBranca() {
649
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.BRANCA.getValor()) : false;
650
        }
651
        @Transient
652
        public Boolean getRacaCorEhNegra() {
653
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.NEGRA.getValor()) : false;
654
        }
655
        @Transient
656
        public Boolean getRacaCorEhAmarela() {
657
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.AMARELA.getValor()) : false;
658
        }
659
        @Transient
660
        public Boolean getRacaCorEhParda() {
661
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.PARDA.getValor()) : false;
662
        }
663
        @Transient
664
        public Boolean getRacaCorEhNaoInformada() {
665
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.NAO_INFORMADA.getValor()) : false;
666
        }
667
 
668
        @Transient
669
        public Endereco primeiroEndereco() {
670
                if (!VerificadorUtil.isListaNulaOuVazia(getEnderecos())) {
671
                        return getEnderecos().get(0);
672
                }
673
                return null;
674
        }
675
 
676
        @Transient
677
        public void atualizarEndereco(Endereco endereco) {
678
                if (VerificadorUtil.isListaNulaOuVazia(getEnderecos())) {
679
                        List<Endereco> enderecos = new ArrayList<Endereco>();
680
                        endereco.setPessoa(this);
681
                        enderecos.add(endereco);
682
                        setEnderecos(enderecos);
683
                } else {
684
                        int localizacao = getEnderecos().indexOf(endereco);
685
                        if (localizacao > -1) {
686
                                getEnderecos().remove(localizacao);
687
                        }
688
                        getEnderecos().add(endereco);
689
                }
690
        }
691
 
692
}