Subversion Repositories Integrator Subversion

Rev

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