Subversion Repositories Integrator Subversion

Rev

Rev 195 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 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.JoinColumn;
12
import javax.persistence.OneToOne;
13
import javax.persistence.SequenceGenerator;
14
import javax.persistence.Table;
15
import javax.persistence.Transient;
16
import javax.validation.constraints.NotNull;
17
import javax.validation.constraints.Size;
18
 
19
import org.hibernate.annotations.ForeignKey;
20
 
195 espaco 21
import br.com.ec.core.interfaces.Alterar;
22
import br.com.ec.core.interfaces.Cadastrar;
23
import br.com.ec.core.util.VerificadorUtil;
106 espaco 24
import br.com.ec.domain.model.tipos.TipoComissionamento;
25
 
26
@Entity
27
@Table(name="sec_funcionario", schema="sc_sec")
28
public class Funcionario implements Serializable {
29
 
30
        private static final long serialVersionUID = 1L;
31
 
32
        private Long sequencial;
33
        private Pessoa pessoa;
34
        private Integer codigoContabilidade;
35
        private Date admissao;
36
        private Date demissao;
37
        private String pis;
38
        private String ctps;
39
        private String ctpsSerie;
40
        private String ctpsUf;
41
        private Double salario;
42
        private String tipoComissionamento;
170 espaco 43
        private String tamanhoFardamento;
304 espaco 44
        private Boolean primeiroEmprego;
45
        private Boolean optantePeloFGTS;
106 espaco 46
        private Boolean ativo;
47
 
48
        private Double valorLiquido;
49
 
50
        public Funcionario() {}
51
 
52
        public Funcionario(Boolean ativo) {
53
                this.ativo = ativo;
54
        }
55
 
56
        @Id
57
        @SequenceGenerator(name = "sq_funcionario")
58
        @GeneratedValue(strategy=GenerationType.IDENTITY)
59
        @Column(name="seq_funcionario", nullable=false)
60
        public Long getSequencial() {
61
                return sequencial;
62
        }
63
 
64
        public void setSequencial(Long sequencial) {
65
                this.sequencial = sequencial;
66
        }
67
 
68
        @OneToOne
69
        @ForeignKey(name="fk_funcionario_pessoa")
70
        @NotNull(message="Obrigatório informar a pessoa", groups={Cadastrar.class, Alterar.class})
71
        @JoinColumn(name="seq_pessoa", referencedColumnName="seq_pessoa", nullable=false)
72
        public Pessoa getPessoa() {
73
                return pessoa;
74
        }
75
 
76
        public void setPessoa(Pessoa pessoa) {
77
                this.pessoa = pessoa;
78
        }
79
 
80
        @Column(name="cod_contabilidade")
81
        public Integer getCodigoContabilidade() {
82
                return codigoContabilidade;
83
        }
84
 
85
        public void setCodigoContabilidade(Integer codigoContabilidade) {
86
                this.codigoContabilidade = codigoContabilidade;
87
        }
88
 
89
        @Column(name="dat_admissao")
90
        public Date getAdmissao() {
91
                return admissao;
92
        }
93
        public void setAdmissao(Date admissao) {
94
                this.admissao = admissao;
95
        }
96
 
97
        @Column(name="dat_demissao")
98
        public Date getDemissao() {
99
                return demissao;
100
        }
101
        public void setDemissao(Date demissao) {
102
                this.demissao = demissao;
103
        }
104
 
105
        @Column(name="dsc_pis")
106
        @Size(max = 30, message = "Limite de caracteres ultrapassado: PIS")
107
        public String getPis() {
108
                return pis;
109
        }
110
        public void setPis(String pis) {
111
                this.pis = pis;
112
        }
113
 
114
        @Column(name="dsc_ctps")
115
        @Size(max = 30, message = "Limite de caracteres ultrapassado: CTPS")
116
        public String getCtps() {
117
                return ctps;
118
        }
119
        public void setCtps(String ctps) {
120
                this.ctps = ctps;
121
        }
122
 
123
        @Column(name="dsc_ctps_serie")
124
        @Size(max = 10, message = "Limite de caracteres ultrapassado: Série da CTPS")
125
        public String getCtpsSerie() {
126
                return ctpsSerie;
127
        }
128
        public void setCtpsSerie(String ctpsSerie) {
129
                this.ctpsSerie = ctpsSerie;
130
        }
131
 
132
        @Column(name="dsc_ctps_uf")
133
        @Size(max = 2, message = "Limite de caracteres ultrapassado: UF da CTPS")
134
        public String getCtpsUf() {
135
                return ctpsUf;
136
        }
137
        public void setCtpsUf(String ctpsUf) {
138
                this.ctpsUf = ctpsUf;
139
        }
140
 
141
        @Column(name="val_salario")
142
        public Double getSalario() {
143
                return salario;
144
        }
145
        public void setSalario(Double salario) {
146
                this.salario = salario;
147
        }
148
 
149
        @Column(name="tip_comissionamento")
150
        @NotNull(message = "Parâmetro obrigatório não preenchido: Tipo de comissionamento", groups = {Cadastrar.class, Alterar.class})
151
        public String getTipoComissionamento() {
152
                return tipoComissionamento;
153
        }
154
        public void setTipoComissionamento(String tipoComissionamento) {
155
                this.tipoComissionamento = tipoComissionamento;
156
        }
157
 
170 espaco 158
        @Column(name="dsc_tamanho_fardamento")
159
        public String getTamanhoFardamento() {
160
                return tamanhoFardamento;
161
        }
162
        public void setTamanhoFardamento(String tamanhoFardamento) {
163
                this.tamanhoFardamento = tamanhoFardamento;
164
        }
165
 
304 espaco 166
        @Column(name="ind_primeiro_emprego")
167
        public Boolean getPrimeiroEmprego() {
168
                return primeiroEmprego;
169
        }
170
        public void setPrimeiroEmprego(Boolean primeiroEmprego) {
171
                this.primeiroEmprego = primeiroEmprego;
172
        }
173
 
174
        @Column(name="ind_optante_fgts")
175
        public Boolean getOptantePeloFGTS() {
176
                return optantePeloFGTS;
177
        }
178
        public void setOptantePeloFGTS(Boolean optantePeloFGTS) {
179
                this.optantePeloFGTS = optantePeloFGTS;
180
        }
181
 
106 espaco 182
        @Column(name="ind_ativo", nullable=false)
183
        public Boolean getAtivo() {
184
                return ativo;
185
        }
186
        public void setAtivo(Boolean ativo) {
187
                this.ativo = ativo;
188
        }
189
 
190
        @Transient
191
        public Double getValorLiquido() {
192
                return valorLiquido;
193
        }
194
        public void setValorLiquido(Double valorLiquido) {
195
                this.valorLiquido = valorLiquido;
196
        }
197
 
198
        @Override
199
        public int hashCode() {
200
                final int prime = 31;
201
                int result = 1;
202
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
203
                return result;
204
        }
205
 
206
        @Override
207
        public boolean equals(Object obj) {
208
                if (this == obj)
209
                        return true;
210
                if (obj == null)
211
                        return false;
212
                if (getClass() != obj.getClass())
213
                        return false;
214
                Funcionario other = (Funcionario) obj;
215
                if (sequencial == null) {
216
                        if (other.sequencial != null)
217
                                return false;
218
                } else if (!sequencial.equals(other.sequencial))
219
                        return false;
220
                return true;
221
        }
222
 
223
        @Transient
224
        public String getNomeDaPessoa() {
225
                return VerificadorUtil.naoEstaNulo(getPessoa())? getPessoa().getNome() : null;
226
        }
227
 
228
        @Transient
229
        public String getEmailDaPessoa() {
230
                return VerificadorUtil.naoEstaNulo(getPessoa())? getPessoa().getEmail() : null;
231
        }
232
 
233
        @Transient
234
        public String getDescricaoDoTipoComissionamento() {
235
                return TipoComissionamento.parse(getTipoComissionamento()).getDescricao();
236
        }
237
 
238
        @Transient
239
        public Boolean tipoComissionamentoEhEspacoCase() {
240
                return getTipoComissionamento().equals(TipoComissionamento.COMISSSIONAMENTO_ESPACO_CASE.getValor());
241
        }
242
 
243
        @Transient
244
        public Boolean tipoComissionamentoEhCasaDasCapas() {
245
                return getTipoComissionamento().equals(TipoComissionamento.COMISSSIONAMENTO_CASA_DAS_CAPAS.getValor());
246
        }
247
 
248
        @Transient
249
        public Boolean tipoComissionamentoEhFarmacia() {
250
                return getTipoComissionamento().equals(TipoComissionamento.COMISSSIONAMENTO_FARMACIA.getValor());
251
        }
252
 
253
        @Transient
254
        public Boolean tipoComissionamentoEhVivo() {
255
                return getTipoComissionamento().equals(TipoComissionamento.COMISSSIONAMENTO_VIVO.getValor());
256
        }
257
 
258
}