Subversion Repositories Integrator Subversion

Rev

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