Subversion Repositories Integrator Subversion

Rev

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