package br.com.ec.domain.dto;
import java.beans.Transient;
import br.com.ec.domain.model.AvaliacaoLoja;
import br.com.ec.domain.model.Loja;
import br.edu.cesmac.core.util.VerificadorUtil;
public class RankingLojaDTO
implements Comparable<RankingLojaDTO
> {
private AvaliacaoLoja avaliacaoLoja
;
private Loja loja
;
private Double valorTotalVendido
;
private Double valorMetaMensal
;
private Double valorCac
;
private Integer quantidadeVendas
;
private Integer quantidadeAtendimentos
;
private Integer quantidadePedidos
;
private Integer quantidadePedidosInvalidos
;
private Integer quantidadeAvarias
;
private Integer quantidadeTrocas
;
private Double valorTotalDescontos
;
private Double valorTotalEstoque
;
private Integer quantidadeTotalEstoque
;
private Double custoProdutosVendidos
;
private Double resultadoLiquido
;
public RankingLojaDTO
() {
valorTotalVendido =
0.0;
valorMetaMensal =
0.0;
}
public AvaliacaoLoja getAvaliacaoLoja
() {
return avaliacaoLoja
;
}
public void setAvaliacaoLoja
(AvaliacaoLoja avaliacaoLoja
) {
this.
avaliacaoLoja = avaliacaoLoja
;
}
public Loja getLoja
() {
return loja
;
}
public void setLoja
(Loja loja
) {
this.
loja = loja
;
}
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 Double getPercentualMetaMensal
() {
if (VerificadorUtil.
naoEstaNulo(valorTotalVendido
) && VerificadorUtil.
naoEstaNulo(valorMetaMensal
)) {
if (valorMetaMensal
> new Double(0.0)) {
return valorTotalVendido / valorMetaMensal
;
}
}
return new Double (0.0);
}
public Double getValorCac
() {
return valorCac
;
}
public void setValorCac
(Double valorCac
) {
this.
valorCac = valorCac
;
}
public Integer getQuantidadeVendas
() {
return quantidadeVendas
;
}
public void setQuantidadeVendas
(Integer quantidadeVendas
) {
this.
quantidadeVendas = quantidadeVendas
;
}
public Integer getQuantidadeAtendimentos
() {
return quantidadeAtendimentos
;
}
public void setQuantidadeAtendimentos
(Integer quantidadeAtendimentos
) {
this.
quantidadeAtendimentos = quantidadeAtendimentos
;
}
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 getQuantidadeAvarias
() {
return quantidadeAvarias
;
}
public void setQuantidadeAvarias
(Integer quantidadeAvarias
) {
this.
quantidadeAvarias = quantidadeAvarias
;
}
public Integer getQuantidadeTrocas
() {
return quantidadeTrocas
;
}
public void setQuantidadeTrocas
(Integer quantidadeTrocas
) {
this.
quantidadeTrocas = quantidadeTrocas
;
}
public Double getValorTotalDescontos
() {
return valorTotalDescontos
;
}
public void setValorTotalDescontos
(Double valorTotalDescontos
) {
this.
valorTotalDescontos = valorTotalDescontos
;
}
public Double getValorTotalEstoque
() {
return valorTotalEstoque
;
}
public void setValorTotalEstoque
(Double valorTotalEstoque
) {
this.
valorTotalEstoque = valorTotalEstoque
;
}
public Integer getQuantidadeTotalEstoque
() {
return quantidadeTotalEstoque
;
}
public void setQuantidadeTotalEstoque
(Integer quantidadeTotalEstoque
) {
this.
quantidadeTotalEstoque = quantidadeTotalEstoque
;
}
public Double getCustoProdutosVendidos
() {
return custoProdutosVendidos
;
}
public void setCustoProdutosVendidos
(Double custoProdutosVendidos
) {
this.
custoProdutosVendidos = custoProdutosVendidos
;
}
public Double getResultadoLiquido
() {
return resultadoLiquido
;
}
public void setResultadoLiquido
(Double resultadoLiquido
) {
this.
resultadoLiquido = resultadoLiquido
;
}
/*****************************************/
@
Override
public int compareTo
(RankingLojaDTO rankingLojaDTO
) {
return rankingLojaDTO.
getValorTotalVendido().
compareTo(this.
valorTotalVendido);
}
@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) {
return "green";
} else if (diferenca
> (diferencaSetentaCinco
* -
1 /
100)) {
return "orange";
} else {
return "red";
}
}
return "black";
}
@Transient
public Double valorTicketMedio
() {
if (VerificadorUtil.
naoEstaNulo(getValorTotalVendido
()) &&
VerificadorUtil.
naoEstaNulo(getQuantidadeVendas
())) {
if (getValorTotalVendido
() > 0.0 && getQuantidadeVendas
() > 0) {
return getValorTotalVendido
() / getQuantidadeVendas
();
}
}
return 0.0;
}
@Transient
public Double percentualDesconto
() {
if (VerificadorUtil.
naoEstaNulo(getValorTotalVendido
()) &&
VerificadorUtil.
naoEstaNulo(getValorTotalDescontos
())) {
if (getValorTotalVendido
() > 0.0 && getValorTotalDescontos
() > 0.0) {
return (getValorTotalDescontos
() * 100) / getValorTotalVendido
();
}
}
return 0.0;
}
}