Subversion Repositories Integrator Subversion

Rev

Rev 268 | Rev 430 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.dto;

import java.util.List;

import javax.persistence.Transient;

import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.tipos.TipoComissionamento;

public class AvaliacaoFuncionarioDTO {
       
        private Long sequencialFuncionario;
        private Long sequencialAvaliacao;
       
        private String descricaoVigencia;
        private Double porcentagemComissao;
        private String observacao;
        private Long pontuacao;
       
        private Double valorTotalVendido;
        private Double valorMetaMensal;
       
        private List<AvaliacaoFuncionarioItemAvaliacaoDTO> itensAvaliacao;
       
        public AvaliacaoFuncionarioDTO() {}
       
        public AvaliacaoFuncionarioDTO(Long sequencialFuncionario, Long sequencialAvaliacao, String descricaoVigencia,
                        String observacao, Long pontuacaoNegativa) {
                this.sequencialFuncionario = sequencialFuncionario;
                this.sequencialAvaliacao = sequencialAvaliacao;
                this.descricaoVigencia = descricaoVigencia;
                this.observacao = observacao;
                if (VerificadorUtil.naoEstaNulo(pontuacaoNegativa)) {
                        this.pontuacao = 10 - pontuacaoNegativa;
                } else {
                        this.pontuacao = new Long(10);
                }
        }
       
        public Long getSequencialFuncionario() {
                return sequencialFuncionario;
        }
        public void setSequencialFuncionario(Long sequencialFuncionario) {
                this.sequencialFuncionario = sequencialFuncionario;
        }
       
        public Long getSequencialAvaliacao() {
                return sequencialAvaliacao;
        }
        public void setSequencialAvaliacao(Long sequencialAvaliacao) {
                this.sequencialAvaliacao = sequencialAvaliacao;
        }
       
        public String getDescricaoVigencia() {
                return descricaoVigencia;
        }
        public void setDescricaoVigencia(String descricaoVigencia) {
                this.descricaoVigencia = descricaoVigencia;
        }
       
        public Double getPorcentagemComissao() {
                return porcentagemComissao;
        }
        public void setPorcentagemComissao(Double porcentagemComissao) {
                this.porcentagemComissao = porcentagemComissao;
        }
       
        public String getObservacao() {
                return observacao;
        }
        public void setObservacao(String observacao) {
                this.observacao = observacao;
        }
       
        public Long getPontuacao() {
                return pontuacao;
        }
        public void setPontuacao(Long pontuacao) {
                this.pontuacao = pontuacao;
        }
       
        public Double getValorTotalVendido() {
                return valorTotalVendido;
        }
        public void setValorTotalVendido(Double valorTotalVendido) {
                this.valorTotalVendido = valorTotalVendido;
        }
       
        public Double getValorMetaMensal() {
                return valorMetaMensal;
        }
        public void setValorMetaMensal(Double valorMetaMensal) {
                this.valorMetaMensal = valorMetaMensal;
        }
       
        public List<AvaliacaoFuncionarioItemAvaliacaoDTO> getItensAvaliacao() {
                return itensAvaliacao;
        }
        public void setItensAvaliacao(List<AvaliacaoFuncionarioItemAvaliacaoDTO> itensAvaliacao) {
                this.itensAvaliacao = itensAvaliacao;
        }
       
        @Transient
        public Double retornarValorComissao(Double totalVendas, String tipoComissionamento) {
                if (VerificadorUtil.naoEstaNuloOuVazio(valorMetaMensal)) {
                        return totalVendas * retornarFaixaComissao(totalVendas, tipoComissionamento);
                }
                return 0.0;
        }
        /*
        @Transient
        public Double retornarValorComissao() {
                if (VerificadorUtil.naoEstaNulo(getFuncionario())) {
                        return retornarValorComissao(getValorTotalVendido(), getFuncionario().getTipoComissionamento());
                }
                return 0.0;
        }
        */

        @Transient
        public Double retornarFaixaComissao(Double totalVendas, String tipoComissionamento) {
                if (VerificadorUtil.naoEstaNuloOuVazio(valorMetaMensal)) {
                        Double percentualRealizado = totalVendas * 100 / valorMetaMensal;
                        if (TipoComissionamento.COMISSSIONAMENTO_ESPACO_CASE.getValor().equals(tipoComissionamento)) {
                                if (percentualRealizado < 75) {
                                        return 0.0;
                                } else if (percentualRealizado < 100) {
                                        return 0.01;
                                } else if (percentualRealizado < 125) {
                                        return 0.02;
                                }
                                return 0.025;
                        }
                        if (TipoComissionamento.COMISSSIONAMENTO_FARMACIA.getValor().equals(tipoComissionamento)) {
                                if (percentualRealizado < 75) {
                                        return 0.0;
                                } else if (percentualRealizado < 100) {
                                        return 0.025;
                                }
                                return 0.05;
                        }
                }
                return 0.0;
        }
        /*
        @Transient
        public Double retornarFaixaComissao() {
                if (VerificadorUtil.naoEstaNulo(getFuncionario())) {
                        return retornarFaixaComissao(getValorTotalVendido(), getFuncionario().getTipoComissionamento());
                }
                return 0.0;
        }
        */

        @Transient
        public Double retornarPercentualRealizado() {
                return retornarPercentual(getValorTotalVendido(), getValorMetaMensal());
        }
       
        @Transient
        public Double retornarPercentualRealizado(Double totalVendas) {
                return retornarPercentual(totalVendas, getValorMetaMensal());
        }
       
        @Transient
        public Double retornarPercentual(Double total, Double meta) {
                return VerificadorUtil.naoEstaNulo(total) && VerificadorUtil.naoEstaNulo(meta)? meta > new Double(0.0) ? total / meta : new Double(0.0) : new Double(0.0);
        }
       
}