Subversion Repositories Integrator Subversion

Rev

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