Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
259 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
302 espaco 4
import java.util.ArrayList;
259 espaco 5
import java.util.Date;
299 espaco 6
import java.util.List;
259 espaco 7
 
299 espaco 8
import javax.persistence.CascadeType;
259 espaco 9
import javax.persistence.Column;
10
import javax.persistence.Entity;
321 espaco 11
import javax.persistence.FetchType;
259 espaco 12
import javax.persistence.GeneratedValue;
13
import javax.persistence.GenerationType;
14
import javax.persistence.Id;
299 espaco 15
import javax.persistence.OneToMany;
259 espaco 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;
299 espaco 27
import br.com.ec.domain.dto.PessoaDTO;
489 blopes 28
import br.com.ec.domain.model.nfe.TipoNotaFiscalInscricaoEstadual;
302 espaco 29
import br.com.ec.domain.model.tipos.TipoDependentes;
259 espaco 30
import br.com.ec.domain.model.tipos.TipoEscolaridade;
31
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
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
38
@Table(name="sec_pessoa", schema="sc_sec")
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;
299 espaco 60
        private String ufNascimento;
259 espaco 61
        private String nomePai;
62
        private String nomeMae;
63
        private String tipoEstadoCivil;
64
        private String tipoRacaCor;
65
        private String tipoEscolaridade;
66
 
299 espaco 67
        private Boolean pessoaDeficienteMotora;
68
        private Boolean pessoaDeficienteVisual;
69
        private Boolean pessoaDeficienteAuditiva;
70
        private Boolean pessoaReabilitado;
71
        private String pessoaDeficienteObservacao;
72
 
302 espaco 73
        private String tipoDependendes;
74
        private String dadosDependentes;
75
        private Boolean dependentesFinsIRRF;
76
        private Boolean dependentesFinsSalarioFamilia;
77
 
259 espaco 78
        //      PESSOA JURÍDICA
79
        private String nomeFantasia;
80
        private String razaoSocial;
81
        private String inscricaoEstadual;
467 blopes 82
        private String tipoInscricaoEstadual;
259 espaco 83
        private String inscricaoMunicipal;
84
        private String tipoRegimeTributario;
85
 
86
        //      CLIENTE
87
        private Boolean indicadorNovidades;
88
 
299 espaco 89
        private Boolean cadastroFinalizado;
259 espaco 90
        private boolean ativo;
91
 
299 espaco 92
        private List<Endereco> enderecos;
325 espaco 93
        private List<PessoaPapel> papeis;
303 espaco 94
        private Funcionario funcionario;
299 espaco 95
 
259 espaco 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
 
299 espaco 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
 
325 espaco 142
        public Pessoa(Long sequencialPessoa) {
143
                this.sequencial = sequencialPessoa;
144
        }
145
 
259 espaco 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) {
302 espaco 194
                this.email = StringUtil.setarLowerCase(email);
259 espaco 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
        }
302 espaco 239
        @Transient
240
        public String getDescricaoDoSexo() {
241
                return VerificadorUtil.naoEstaNulo(getSexo())? TipoSexo.parse(getSexo()).getDescricao() : null;
242
        }
259 espaco 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) {
302 espaco 259
                this.rgOrgaoEmissor = StringUtil.setarUpperCaseComTrim(rgOrgaoEmissor);
259 espaco 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) {
303 espaco 301
                this.localNascimento = StringUtil.setarUpperCaseComTrim(localNascimento);
259 espaco 302
        }
303
 
304
        @Column(name="dsc_nascimento_uf")
305
        @Size(max = 2, message = "Limite de caracteres ultrapassado: UF do Nascimento")
306
        public String getUfNascimento() {
299 espaco 307
                return ufNascimento;
259 espaco 308
        }
309
        public void setUfNascimento(String ufNascimento) {
303 espaco 310
                this.ufNascimento = StringUtil.setarUpperCaseComTrim(ufNascimento);
259 espaco 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
 
299 espaco 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
        }
302 espaco 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
        }
299 espaco 444
 
259 espaco 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) {
302 espaco 460
                this.razaoSocial = StringUtil.setarUpperCaseComTrim(razaoSocial);
259 espaco 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
 
467 blopes 472
        @Column(name="tip_inscricao_estadual")
473
        public String getTipoInscricaoEstadual() {
474
                return tipoInscricaoEstadual;
259 espaco 475
        }
467 blopes 476
        public void setTipoInscricaoEstadual(String tipoInscricaoEstadual) {
477
                this.tipoInscricaoEstadual = tipoInscricaoEstadual;
259 espaco 478
        }
468 blopes 479
        @Transient
480
        public String getNomenclaturaTipoInscricaoEstadual() {
489 blopes 481
                return VerificadorUtil.naoEstaNulo(getTipoInscricaoEstadual())? TipoNotaFiscalInscricaoEstadual.parse(getTipoInscricaoEstadual()).getNomenclaturaNotaFiscal() : "";
468 blopes 482
        }
259 espaco 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
        }
500
        /*
501
        @ManyToOne
502
        @ForeignKey(name="fk_pessoa_modelo")
503
        @JoinColumn(name = "seq_modelo_cliente", nullable=true)
504
        public Modelo getModeloCliente() {
505
                return modeloCliente;
506
        }
507
        public void setModeloCliente(Modelo modeloCliente) {
508
                this.modeloCliente = modeloCliente;
509
        }
510
        */
511
        @Column(name="ind_novidades")
512
        public Boolean getIndicadorNovidades() {
513
                return indicadorNovidades;
514
        }
515
        public void setIndicadorNovidades(Boolean indicadorNovidades) {
516
                this.indicadorNovidades = indicadorNovidades;
517
        }
518
        /*
519
        @Valid
520
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
521
        public Set<DadosBancarios> getDadosBancarios() {
522
                return dadosBancarios;
523
        }
524
 
525
        public void setDadosBancarios(Set<DadosBancarios> dadosBancarios) {
526
                this.dadosBancarios = dadosBancarios;
527
        }
528
        */
299 espaco 529
 
530
        @Column(name="ind_cadastro_finalizado", nullable=false)
531
        public Boolean getCadastroFinalizado() {
532
                return cadastroFinalizado;
533
        }
534
        public void setCadastroFinalizado(Boolean cadastroFinalizado) {
535
                this.cadastroFinalizado = cadastroFinalizado;
536
        }
537
 
259 espaco 538
        @Column(name="ind_ativo", nullable=false)
539
        public Boolean getAtivo() {
540
                return ativo;
541
        }
542
 
543
        public void setAtivo(Boolean ativo) {
544
                this.ativo = ativo;
545
        }
546
 
468 blopes 547
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, fetch=FetchType.LAZY, orphanRemoval=true)
299 espaco 548
        public List<Endereco> getEnderecos() {
549
                return enderecos;
550
        }
551
        public void setEnderecos(List<Endereco> enderecos) {
552
                this.enderecos = enderecos;
553
        }
554
 
468 blopes 555
        @OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, fetch=FetchType.EAGER, orphanRemoval=true)
325 espaco 556
        public List<PessoaPapel> getPapeis() {
557
                return papeis;
558
        }
559
        public void setPapeis(List<PessoaPapel> papeis) {
560
                this.papeis = papeis;
561
        }
562
 
303 espaco 563
        @Transient
564
        public Funcionario getFuncionario() {
565
                return funcionario;
566
        }
567
        public void setFuncionario(Funcionario funcionario) {
568
                this.funcionario = funcionario;
569
        }
570
 
259 espaco 571
        /*******************************************************/
572
 
573
        @Override
574
        public int hashCode() {
575
                final int prime = 31;
576
                int result = 1;
577
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
578
                return result;
579
        }
580
 
581
        @Override
582
        public boolean equals(Object obj) {
583
                if (this == obj)
584
                        return true;
585
                if (obj == null)
586
                        return false;
587
                if (getClass() != obj.getClass())
588
                        return false;
589
                Pessoa other = (Pessoa) obj;
590
                if (sequencial == null) {
591
                        if (other.sequencial != null)
592
                                return false;
593
                } else if (!sequencial.equals(other.sequencial))
594
                        return false;
595
                return true;
596
        }
597
 
598
        @Transient
599
        public Boolean ehTipoPessoaFisica() {
600
                return getTipoPessoa().equals(TipoPessoa.FISICA_F.getValor());
601
        }
602
 
603
        @Transient
604
        public Boolean ehTipoPessoaJuridica() {
605
                return getTipoPessoa().equals(TipoPessoa.JURIDICA_J.getValor());
606
        }
607
 
608
        @Transient
609
        public String getCpfCnpjFormatado() {
610
                return VerificadorUtil.naoEstaNulo(getCpfCnpj())? FormatarUtil.retornarCpfCnpjFormatado(getCpfCnpj()) : "";
611
        }
325 espaco 612
 
259 espaco 613
        @Transient
614
        public Endereco getEnderecoPrincipal() {
615
                ArrayList<Endereco> enderecos = new ArrayList<>(getEnderecos());
616
                return VerificadorUtil.isListaNulaOuVazia(enderecos)? null : enderecos.get(0);
617
        }
325 espaco 618
 
259 espaco 619
        @Transient
620
        public Boolean getEstadoCivilEhSolteiro() {
621
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.SOLTEIRO_S.getValor()) : false;
622
        }
623
        @Transient
624
        public Boolean getEstadoCivilEhCasado() {
625
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.CASADO_C.getValor()) : false;
626
        }
627
        @Transient
628
        public Boolean getEstadoCivilEhDivorciado() {
629
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.DIVORCIADO_D.getValor()) : false;
630
        }
631
        @Transient
632
        public Boolean getEstadoCivilEhViuvo() {
633
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.VIUVO_V.getValor()) : false;
634
        }
635
        @Transient
636
        public Boolean getEstadoCivilEhUniaoEstavel() {
637
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.UNIAO_ESTAVEL_U.getValor()) : false;
638
        }
639
        @Transient
640
        public Boolean getEstadoCivilEhOutros() {
641
                return VerificadorUtil.naoEstaNulo(getTipoEstadoCivil())? getTipoEstadoCivil().equals(TipoEstadoCivil.OUTROS_O.getValor()) : false;
642
        }
643
 
644
        @Transient
645
        public Boolean getSexoEhMasculino() {
646
                return VerificadorUtil.naoEstaNulo(getSexo())? getSexo().equals(TipoSexo.MASCULINO.getValor()) : false;
647
        }
648
        @Transient
649
        public Boolean getSexoEhFeminino() {
650
                return VerificadorUtil.naoEstaNulo(getSexo())? getSexo().equals(TipoSexo.FEMININO.getValor()) : false;
651
        }
652
 
653
        @Transient
654
        public Boolean getRacaCorEhIndigena() {
655
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.INDIGENA.getValor()) : false;
656
        }
657
        @Transient
658
        public Boolean getRacaCorEhBranca() {
659
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.BRANCA.getValor()) : false;
660
        }
661
        @Transient
662
        public Boolean getRacaCorEhNegra() {
663
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.NEGRA.getValor()) : false;
664
        }
665
        @Transient
666
        public Boolean getRacaCorEhAmarela() {
667
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.AMARELA.getValor()) : false;
668
        }
669
        @Transient
670
        public Boolean getRacaCorEhParda() {
671
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.PARDA.getValor()) : false;
672
        }
673
        @Transient
674
        public Boolean getRacaCorEhNaoInformada() {
675
                return VerificadorUtil.naoEstaNulo(getTipoRacaCor())? getTipoRacaCor().equals(TipoRacaCor.NAO_INFORMADA.getValor()) : false;
676
        }
302 espaco 677
 
678
        @Transient
679
        public Endereco primeiroEndereco() {
680
                if (!VerificadorUtil.isListaNulaOuVazia(getEnderecos())) {
681
                        return getEnderecos().get(0);
682
                }
683
                return null;
684
        }
685
 
686
        @Transient
687
        public void atualizarEndereco(Endereco endereco) {
688
                if (VerificadorUtil.isListaNulaOuVazia(getEnderecos())) {
689
                        List<Endereco> enderecos = new ArrayList<Endereco>();
690
                        endereco.setPessoa(this);
691
                        enderecos.add(endereco);
323 espaco 692
                        setEnderecos(enderecos);
302 espaco 693
                } else {
694
                        int localizacao = getEnderecos().indexOf(endereco);
695
                        if (localizacao > -1) {
696
                                getEnderecos().remove(localizacao);
697
                        }
698
                        getEnderecos().add(endereco);
699
                }
700
        }
259 espaco 701
 
702
}