Subversion Repositories Integrator Subversion

Rev

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