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);
}
}