Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.domain.dto;

import java.beans.Transient;

import br.com.ec.domain.model.AvaliacaoFuncionario;
import br.com.ec.domain.model.Funcionario;
import br.com.ec.domain.model.Vendedor;
import br.edu.cesmac.core.util.DataUtils;
import br.edu.cesmac.core.util.VerificadorUtil;

public class RankingVendedorDTO implements Comparable<RankingVendedorDTO> {

        private AvaliacaoFuncionario avaliacaoFuncionario;
        private Vendedor vendedor;
        private Funcionario funcionario;
        private Double quantidadeBancoHoras;
        private Double valorTotalVendidoDoDia;
        private Double valorTotalVendido;
        private Integer quantidadeTotalProdutosVendidos;
        private Double valorTotalVendidoVivo;
        private Double valorTotalDescontos;
        private Double percentualDescontos;
        private Integer quantidadePedidos;
        private Integer quantidadePedidosInvalidos;
        private Integer quantidadeVendas;
        private Integer quantidadeContagens;
        private Integer quantidadeAtendimentos;
        private Double percentualMetaDiaria;
        private Double percentualMetaMensal;
        private Double percentualMetaMensalVivo;
        private Double comissao;
        private Double comissaoVivo;
       
        public AvaliacaoFuncionario getAvaliacaoFuncionario() {
                return avaliacaoFuncionario;
        }
        public void setAvaliacaoFuncionario(AvaliacaoFuncionario avaliacaoFuncionario) {
                this.avaliacaoFuncionario = avaliacaoFuncionario;
        }
       
        public Vendedor getVendedor() {
                return vendedor;
        }
        public void setVendedor(Vendedor vendedor) {
                this.vendedor = vendedor;
        }
       
        public Funcionario getFuncionario() {
                return funcionario;
        }
        public void setFuncionario(Funcionario funcionario) {
                this.funcionario = funcionario;
        }
       
        public Double getQuantidadeBancoHoras() {
                return quantidadeBancoHoras;
        }
        public void setQuantidadeBancoHoras(Double quantidadeBancoHoras) {
                this.quantidadeBancoHoras = quantidadeBancoHoras;
        }
       
        public Double getValorTotalVendidoDoDia() {
                return valorTotalVendidoDoDia;
        }
        public void setValorTotalVendidoDoDia(Double valorTotalVendidoDoDia) {
                this.valorTotalVendidoDoDia = valorTotalVendidoDoDia;
        }
       
        public Double getValorTotalVendido() {
                return valorTotalVendido;
        }
        public void setValorTotalVendido(Double valorTotalVendido) {
                this.valorTotalVendido = valorTotalVendido;
        }
       
        public Integer getQuantidadeTotalProdutosVendidos() {
                return quantidadeTotalProdutosVendidos;
        }
        public void setQuantidadeTotalProdutosVendidos(Integer quantidadeTotalProdutosVendidos) {
                this.quantidadeTotalProdutosVendidos = quantidadeTotalProdutosVendidos;
        }
       
        public Double getValorTotalVendidoVivo() {
                return valorTotalVendidoVivo;
        }
        public void setValorTotalVendidoVivo(Double valorTotalVendidoVivo) {
                this.valorTotalVendidoVivo = valorTotalVendidoVivo;
        }
       
        public Double getValorTotalDescontos() {
                return valorTotalDescontos;
        }
        public void setValorTotalDescontos(Double valorTotalDescontos) {
                this.valorTotalDescontos = valorTotalDescontos;
        }
       
        public Double getPercentualDescontos() {
                return percentualDescontos;
        }
        public void setPercentualDescontos(Double percentualDescontos) {
                this.percentualDescontos = percentualDescontos;
        }
       
        public Integer getQuantidadePedidos() {
                return quantidadePedidos;
        }
        public void setQuantidadePedidos(Integer quantidadePedidos) {
                this.quantidadePedidos = quantidadePedidos;
        }
       
        public Integer getQuantidadePedidosInvalidos() {
                return quantidadePedidosInvalidos;
        }
        public void setQuantidadePedidosInvalidos(Integer quantidadePedidosInvalidos) {
                this.quantidadePedidosInvalidos = quantidadePedidosInvalidos;
        }
       
        public Integer getQuantidadeVendas() {
                return quantidadeVendas;
        }
        public void setQuantidadeVendas(Integer quantidadeVendas) {
                this.quantidadeVendas = quantidadeVendas;
        }
       
        public Integer getQuantidadeContagens() {
                return quantidadeContagens;
        }
        public void setQuantidadeContagens(Integer quantidadeContagens) {
                this.quantidadeContagens = quantidadeContagens;
        }
       
        public Integer getQuantidadeAtendimentos() {
                return quantidadeAtendimentos;
        }
        public void setQuantidadeAtendimentos(Integer quantidadeAtendimentos) {
                this.quantidadeAtendimentos = quantidadeAtendimentos;
        }
       
        public Double getPercentualMetaDiaria() {
                return percentualMetaDiaria;
        }
        public void setPercentualMetaDiaria(Double percentualMetaDiaria) {
                this.percentualMetaDiaria = percentualMetaDiaria;
        }
       
        public Double getPercentualMetaMensal() {
                return percentualMetaMensal;
        }
        public void setPercentualMetaMensal(Double percentualMetaMensal) {
                this.percentualMetaMensal = percentualMetaMensal;
        }
       
        public Double getPercentualMetaMensalVivo() {
                return percentualMetaMensalVivo;
        }
        public void setPercentualMetaMensalVivo(Double percentualMetaMensalVivo) {
                this.percentualMetaMensalVivo = percentualMetaMensalVivo;
        }
       
        public Double getComissao() {
                return comissao;
        }
        public void setComissao(Double comissao) {
                this.comissao = comissao;
        }
       
        public Double getComissaoVivo() {
                return comissaoVivo;
        }
        public void setComissaoVivo(Double comissaoVivo) {
                this.comissaoVivo = comissaoVivo;
        }
       
        @SuppressWarnings("deprecation")
        public Double getPercentualPercorridoMesAtual() {
                Integer ultimoDiaDoMes = DataUtils.getUltimoDiaDoMesAtual().getDate();
                Integer diaAtual = DataUtils.getDataAtual().getDate();
                return new Double(100*diaAtual/ultimoDiaDoMes);
        }
       
        @Override
        public int compareTo(RankingVendedorDTO rankingVendedorDTO) {
                return rankingVendedorDTO.getValorTotalVendido().compareTo(this.valorTotalVendido);
        }
       
        public Double getTicketMedio() {
                if (VerificadorUtil.naoEstaNulo(getValorTotalVendido())
                                && VerificadorUtil.naoEstaNulo(getQuantidadeVendas())) {
                        if (getValorTotalVendido() > 0 && getQuantidadeVendas() > 0) {
                                return getValorTotalVendido()/getQuantidadeVendas();
                        }
                }
                return 0.0;
        }
       
        @Transient
        public Double retornarFaixaComissao() {
                if (VerificadorUtil.naoEstaNulo(getAvaliacaoFuncionario())) {
                        if (VerificadorUtil.naoEstaNulo(getAvaliacaoFuncionario().getPorcentagemComissao())) {
                                return getAvaliacaoFuncionario().getPorcentagemComissao();
                        }
                        return getAvaliacaoFuncionario().retornarFaixaComissao(getValorTotalVendido(), getFuncionario().getTipoComissionamento());
                }
                return 0.0;
        }
       
        @Transient
        public String corSobreMeta() {
                if (VerificadorUtil.naoEstaNulo(getPercentualMetaMensal())) {
                        if (getPercentualMetaMensal() > 0.99) return "green";
                        if (getPercentualMetaMensal() > 0.74) return "orange";
                        return "red";
                }
                return "black";
        }
       
        @Transient
        public String corSobreMetaCorrente(Double percentualPercorridoMesAtual) {
                if (VerificadorUtil.naoEstaNulo(getPercentualMetaMensal()) && VerificadorUtil.naoEstaNulo(percentualPercorridoMesAtual)) {
                        Double diferenca = getPercentualMetaMensal() - (percentualPercorridoMesAtual/100);
                        Double diferencaSetentaCinco = percentualPercorridoMesAtual * 25 / 100;
                        if (diferenca > 0.24) {
                                return "blue";
                        } else if (diferenca > 0) {
                                return "green";
                        } else if (diferenca > (diferencaSetentaCinco * -1 / 100)) {
                                return "orange";
                        } else {
                                return "red";
                        }
                }
                return "black";
        }
       
        @Transient
        public Boolean percentualDescontosPertoDoLimite() {
                if (VerificadorUtil.naoEstaNulo(getPercentualDescontos())) {
                        if (getPercentualDescontos() > 0.06 && getPercentualDescontos() < 0.07) {
                                return true;
                        }
                }
                return false;
        }
       
        @Transient
        public Boolean percentualDescontosSuperiorAoLimite() {
                if (VerificadorUtil.naoEstaNulo(getPercentualDescontos())) {
                        if (getPercentualDescontos() > 0.07) {
                                return true;
                        }
                }
                return false;
        }
       
}