Subversion Repositories Integrator Subversion

Rev

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