Subversion Repositories Integrator Subversion

Rev

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