Subversion Repositories Integrator Subversion

Rev

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