Subversion Repositories Integrator Subversion

Rev

Rev 610 | Rev 654 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
268 espaco 1
package br.com.ec.domain.dto;
2
 
279 espaco 3
import java.util.List;
4
 
268 espaco 5
import javax.persistence.Transient;
6
 
7
import br.com.ec.core.util.VerificadorUtil;
8
import br.com.ec.domain.model.tipos.TipoComissionamento;
9
 
10
public class AvaliacaoFuncionarioDTO {
429 espaco 11
 
430 espaco 12
        private AvaliacaoDTO avaliacaoDTO;
13
        private FuncionarioDTO funcionarioDTO;
279 espaco 14
 
15
        private Double porcentagemComissao;
16
        private String observacao;
17
        private Long pontuacao;
18
 
268 espaco 19
        private Double valorTotalVendido;
20
        private Double valorMetaMensal;
429 espaco 21
        private Double valorComissao;
268 espaco 22
 
279 espaco 23
        private List<AvaliacaoFuncionarioItemAvaliacaoDTO> itensAvaliacao;
268 espaco 24
 
279 espaco 25
        public AvaliacaoFuncionarioDTO() {}
268 espaco 26
 
653 blopes 27
        public static String CONSULTA_DTO_COMPLETA = "new br.com.ec.domain.dto.AvaliacaoFuncionarioDTO(" +
28
                        "e.avaliacaoFuncionarioId.sequencialFuncionario, e.avaliacaoFuncionarioId.sequencialAvaliacao, e.avaliacaoFuncionarioId.sequencialLoja" +
29
                        ", e.avaliacao.vigencia.descricao, e.observacao" +
30
                        ", (SELECT SUM(afi.quantidadePontos) FROM AvaliacaoFuncionarioItemAvaliacao afi " +
31
                        "WHERE afi.avaliacaoFuncionario.avaliacaoFuncionarioId.sequencialFuncionario = e.avaliacaoFuncionarioId.sequencialFuncionario AND " +
32
            "afi.avaliacaoFuncionario.avaliacaoFuncionarioId.sequencialAvaliacao = e.avaliacaoFuncionarioId.sequencialAvaliacao AND " +
33
            "afi.avaliacaoFuncionario.avaliacaoFuncionarioId.sequencialLoja = e.avaliacaoFuncionarioId.sequencialLoja AND " +
34
            "afi.itemAvaliacao.indicadorRetirarPontos IS TRUE)) ";
430 espaco 35
        public AvaliacaoFuncionarioDTO(Long sequencialFuncionario, Long sequencialAvaliacao, Long sequencialVigencia, String descricaoVigencia,
279 espaco 36
                        String observacao, Long pontuacaoNegativa) {
430 espaco 37
                this.avaliacaoDTO = new AvaliacaoDTO(sequencialAvaliacao, null, descricaoVigencia);
38
                this.funcionarioDTO = new FuncionarioDTO(sequencialFuncionario, null, null);
39
 
279 espaco 40
                this.observacao = observacao;
41
                if (VerificadorUtil.naoEstaNulo(pontuacaoNegativa)) {
42
                        this.pontuacao = 10 - pontuacaoNegativa;
43
                } else {
44
                        this.pontuacao = new Long(10);
45
                }
46
        }
47
 
610 blopes 48
        public AvaliacaoFuncionarioDTO(Long sequencialPessoa, Long sequencialFuncionario, String nomeFuncionario, String cpfFuncionario, String emailFuncionario,
430 espaco 49
                        Integer codigoContabilidade, Long sequencialAvaliacao, Long sequencialVigencia, String descricaoVigencia, Double porcentagemComissao,
50
                        String observacao, Long pontuacao, Double valorComissao, Double valorMetaMensal) {
51
                this.avaliacaoDTO = new AvaliacaoDTO(sequencialAvaliacao, sequencialVigencia, descricaoVigencia);
610 blopes 52
                this.funcionarioDTO = new FuncionarioDTO(sequencialFuncionario, sequencialPessoa, nomeFuncionario, cpfFuncionario, emailFuncionario, codigoContabilidade);
429 espaco 53
                this.porcentagemComissao = porcentagemComissao;
54
                this.observacao = observacao;
55
                this.pontuacao = pontuacao;
56
                this.valorComissao = valorComissao;
57
                this.valorMetaMensal = valorMetaMensal;
58
        }
59
 
430 espaco 60
        public AvaliacaoDTO getAvaliacaoDTO() {
61
                return avaliacaoDTO;
429 espaco 62
        }
430 espaco 63
        public void setAvaliacaoDTO(AvaliacaoDTO avaliacaoDTO) {
64
                this.avaliacaoDTO = avaliacaoDTO;
429 espaco 65
        }
66
 
430 espaco 67
        public FuncionarioDTO getFuncionarioDTO() {
68
                return funcionarioDTO;
279 espaco 69
        }
430 espaco 70
        public void setFuncionarioDTO(FuncionarioDTO funcionarioDTO) {
71
                this.funcionarioDTO = funcionarioDTO;
279 espaco 72
        }
73
 
74
        public Double getPorcentagemComissao() {
75
                return porcentagemComissao;
76
        }
77
        public void setPorcentagemComissao(Double porcentagemComissao) {
78
                this.porcentagemComissao = porcentagemComissao;
79
        }
80
 
81
        public String getObservacao() {
82
                return observacao;
83
        }
84
        public void setObservacao(String observacao) {
85
                this.observacao = observacao;
86
        }
87
 
88
        public Long getPontuacao() {
89
                return pontuacao;
90
        }
91
        public void setPontuacao(Long pontuacao) {
92
                this.pontuacao = pontuacao;
93
        }
94
 
268 espaco 95
        public Double getValorTotalVendido() {
96
                return valorTotalVendido;
97
        }
98
        public void setValorTotalVendido(Double valorTotalVendido) {
99
                this.valorTotalVendido = valorTotalVendido;
100
        }
101
 
102
        public Double getValorMetaMensal() {
103
                return valorMetaMensal;
104
        }
105
        public void setValorMetaMensal(Double valorMetaMensal) {
106
                this.valorMetaMensal = valorMetaMensal;
107
        }
108
 
429 espaco 109
        public Double getValorComissao() {
110
                return valorComissao;
111
        }
112
        public void setValorComissao(Double valorComissao) {
113
                this.valorComissao = valorComissao;
114
        }
115
 
279 espaco 116
        public List<AvaliacaoFuncionarioItemAvaliacaoDTO> getItensAvaliacao() {
117
                return itensAvaliacao;
118
        }
119
        public void setItensAvaliacao(List<AvaliacaoFuncionarioItemAvaliacaoDTO> itensAvaliacao) {
120
                this.itensAvaliacao = itensAvaliacao;
121
        }
122
 
268 espaco 123
        @Transient
124
        public Double retornarValorComissao(Double totalVendas, String tipoComissionamento) {
125
                if (VerificadorUtil.naoEstaNuloOuVazio(valorMetaMensal)) {
126
                        return totalVendas * retornarFaixaComissao(totalVendas, tipoComissionamento);
127
                }
128
                return 0.0;
129
        }
130
        /*
131
        @Transient
132
        public Double retornarValorComissao() {
133
                if (VerificadorUtil.naoEstaNulo(getFuncionario())) {
134
                        return retornarValorComissao(getValorTotalVendido(), getFuncionario().getTipoComissionamento());
135
                }
136
                return 0.0;
137
        }
138
        */
139
        @Transient
140
        public Double retornarFaixaComissao(Double totalVendas, String tipoComissionamento) {
141
                if (VerificadorUtil.naoEstaNuloOuVazio(valorMetaMensal)) {
142
                        Double percentualRealizado = totalVendas * 100 / valorMetaMensal;
143
                        if (TipoComissionamento.COMISSSIONAMENTO_ESPACO_CASE.getValor().equals(tipoComissionamento)) {
144
                                if (percentualRealizado < 75) {
145
                                        return 0.0;
146
                                } else if (percentualRealizado < 100) {
147
                                        return 0.01;
148
                                } else if (percentualRealizado < 125) {
149
                                        return 0.02;
150
                                }
151
                                return 0.025;
152
                        }
153
                        if (TipoComissionamento.COMISSSIONAMENTO_FARMACIA.getValor().equals(tipoComissionamento)) {
154
                                if (percentualRealizado < 75) {
155
                                        return 0.0;
156
                                } else if (percentualRealizado < 100) {
157
                                        return 0.025;
158
                                }
159
                                return 0.05;
160
                        }
161
                }
162
                return 0.0;
163
        }
164
        /*
165
        @Transient
166
        public Double retornarFaixaComissao() {
167
                if (VerificadorUtil.naoEstaNulo(getFuncionario())) {
168
                        return retornarFaixaComissao(getValorTotalVendido(), getFuncionario().getTipoComissionamento());
169
                }
170
                return 0.0;
171
        }
172
        */
610 blopes 173
 
268 espaco 174
        public Double retornarPercentualRealizado() {
175
                return retornarPercentual(getValorTotalVendido(), getValorMetaMensal());
176
        }
177
 
178
        public Double retornarPercentualRealizado(Double totalVendas) {
179
                return retornarPercentual(totalVendas, getValorMetaMensal());
180
        }
181
 
182
        public Double retornarPercentual(Double total, Double meta) {
183
                return VerificadorUtil.naoEstaNulo(total) && VerificadorUtil.naoEstaNulo(meta)? meta > new Double(0.0) ? total / meta : new Double(0.0) : new Double(0.0);
184
        }
430 espaco 185
 
186
        public Integer getCodigoContabilidadeDoFuncionario() {
187
                return VerificadorUtil.naoEstaNulo(getFuncionarioDTO())? getFuncionarioDTO().getCodigoContabilidade() : null;
188
        }
189
 
190
        public Long getSequencialPessoaDoFuncionario() {
191
                return VerificadorUtil.naoEstaNulo(getFuncionarioDTO())? getFuncionarioDTO().getSequencialPessoaDoFuncionario() : null;
192
        }
268 espaco 193
 
430 espaco 194
        public Long getSequencialDoFuncionario() {
195
                return VerificadorUtil.naoEstaNulo(getFuncionarioDTO())? getFuncionarioDTO().getSequencialFuncionario() : null;
196
        }
197
 
198
        public Long getSequencialDaAvaliacao() {
199
                return VerificadorUtil.naoEstaNulo(getAvaliacaoDTO())? getAvaliacaoDTO().getSequencial() : null;
200
        }
201
 
610 blopes 202
        public String getCpfCnpjDoFuncionario() {
203
                return VerificadorUtil.naoEstaNulo(getFuncionarioDTO())? getFuncionarioDTO().getCpfCnpjDaPessoa() : null;
204
        }
205
 
430 espaco 206
        public String getNomeDaPessoa() {
207
                return VerificadorUtil.naoEstaNulo(getFuncionarioDTO())? getFuncionarioDTO().getNomeDaPessoa() : null;
208
        }
209
 
210
        public String getEmailDaPessoa() {
211
                return VerificadorUtil.naoEstaNulo(getFuncionarioDTO())? getFuncionarioDTO().getEmailDaPessoa() : null;
212
        }
213
 
268 espaco 214
}