Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.dto;

import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Produto;

public class RankingProdutoPorLojaDTO implements Comparable<RankingProdutoPorLojaDTO> {

        private Produto produto;
        private Loja loja;
        private Long quantidadeVendas;
        private Long quantidadeEstoque;
       
        private Integer quantidadeMinimaTransferir = 1;
        private Long quantidadeSugeridaParaTransferir;
       
        public RankingProdutoPorLojaDTO() {}
       
        public RankingProdutoPorLojaDTO(Loja loja, Long quantidadeVendas, Long quantidadeEstoque) {
                this.loja = loja;
                this.quantidadeVendas = quantidadeVendas;
                this.quantidadeEstoque = quantidadeEstoque;
        }
       
        public Produto getProduto() {
                return produto;
        }
        public void setProduto(Produto produto) {
                this.produto = produto;
        }

        public Loja getLoja() {
                return loja;
        }
        public void setLoja(Loja loja) {
                this.loja = loja;
        }
       
        public Long getQuantidadeVendas() {
                return quantidadeVendas;
        }
        public void setQuantidadeVendas(Long quantidadeVendas) {
                this.quantidadeVendas = quantidadeVendas;
        }
       
        public Long getQuantidadeEstoque() {
                return quantidadeEstoque;
        }
        public void setQuantidadeEstoque(Long quantidadeEstoque) {
                this.quantidadeEstoque = quantidadeEstoque;
        }
       
        public Integer getQuantidadeMinimaTransferir() {
                return quantidadeMinimaTransferir;
        }
        public void setQuantidadeMinimaTransferir(Integer quantidadeMinimaTransferir) {
                this.quantidadeMinimaTransferir = quantidadeMinimaTransferir;
        }
       
        public Long getQuantidadeSugeridaParaTransferir() {
                return quantidadeSugeridaParaTransferir;
        }
        public void setQuantidadeSugeridaParaTransferir(Long quantidadeSugeridaParaTransferir) {
                this.quantidadeSugeridaParaTransferir = quantidadeSugeridaParaTransferir;
        }
       
        public Integer quantidadeParaComprar(Integer quantidadeVendas, Integer quantidadeEstoque) {
                return (getQuantidadeMinimaTransferir() * quantidadeVendas) - quantidadeEstoque;
        }
       
        public Integer quantidadeParaComprar(Integer quantidadeParaComprar, Integer quantidadeVendas, Integer quantidadeEstoque) {
                return VerificadorUtil.naoEstaNulo(quantidadeParaComprar)?
                                (quantidadeParaComprar * quantidadeVendas) - quantidadeEstoque : quantidadeParaComprar(quantidadeVendas, quantidadeEstoque);
        }
       
        public Long quantidadeParaTransferir() {
                if (VerificadorUtil.estaNulo(quantidadeVendas)) {
                        quantidadeVendas = new Long(0);
                }
                if (VerificadorUtil.estaNulo(quantidadeEstoque)) {
                        quantidadeEstoque = new Long(0);
                }
                return (quantidadeEstoque - quantidadeVendas) * getQuantidadeMinimaTransferir() * -1;
        }
       
        @Override
        public int compareTo(RankingProdutoPorLojaDTO rankingProdutoDTO) {
                return this.getLoja().getDescricao().compareTo(rankingProdutoDTO.getLoja().getDescricao());
        }
       
}