Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

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