Subversion Repositories Integrator Subversion

Rev

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