Subversion Repositories Integrator Subversion

Rev

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