Subversion Repositories Integrator Subversion

Rev

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