package br.com.ec.domain.dto;
import java.beans.Transient;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.AvaliacaoFuncionario;
import br.com.ec.domain.model.Funcionario;
import br.com.ec.domain.model.Usuario;
import br.com.ec.domain.model.Vendedor;
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 quantidadeProdutosPromocaoInterna
;
private Integer quantidadeTpuSoftNormal
;
private Integer quantidadeTpuSoftCamera
;
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 percentualMetaTicketMedio
;
private Double comissao
;
private Double comissaoVivo
;
private Double pontuacaoGeral
;
private Usuario usuario
;
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 getQuantidadeProdutosPromocaoInterna
() {
return quantidadeProdutosPromocaoInterna
;
}
public void setQuantidadeProdutosPromocaoInterna
(Integer quantidadeProdutosPromocaoInterna
) {
this.
quantidadeProdutosPromocaoInterna = quantidadeProdutosPromocaoInterna
;
}
public Integer getQuantidadeTpuSoftNormal
() {
return quantidadeTpuSoftNormal
;
}
public void setQuantidadeTpuSoftNormal
(Integer quantidadeTpuSoftNormal
) {
this.
quantidadeTpuSoftNormal = quantidadeTpuSoftNormal
;
}
public Integer getQuantidadeTpuSoftCamera
() {
return quantidadeTpuSoftCamera
;
}
public void setQuantidadeTpuSoftCamera
(Integer quantidadeTpuSoftCamera
) {
this.
quantidadeTpuSoftCamera = quantidadeTpuSoftCamera
;
}
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 getPercentualMetaTicketMedio
() {
return percentualMetaTicketMedio
;
}
public void setPercentualMetaTicketMedio
(Double percentualMetaTicketMedio
) {
this.
percentualMetaTicketMedio = percentualMetaTicketMedio
;
}
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
;
}
public Double getPontuacaoGeral
() {
return pontuacaoGeral
;
}
public void setPontuacaoGeral
(Double pontuacaoGeral
) {
this.
pontuacaoGeral = pontuacaoGeral
;
}
public Usuario getUsuario
() {
return usuario
;
}
public void setUsuario
(Usuario usuario
) {
this.
usuario = usuario
;
}
@
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 corSobreMetaTicketMedio
() {
if (VerificadorUtil.
naoEstaNulo(getPercentualMetaTicketMedio
())) {
if (getPercentualMetaTicketMedio
() > 0.99) return "green";
// if (getPercentualMetaTicketMedio() > 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;
}
}