Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.domain.dto;

import java.util.Date;

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

public class ProdutoLojaDTO {
       
        private ProdutoDTO produtoDTO;
        private LojaDTO lojaDTO;
        private Integer quantidadeEstoque;
       
        /*
        private ProdutoLojaId produtoLojaId;
        private Produto produto;
        private Loja loja;
        private Integer quantidadeEstoque;
        private Integer quantidadeEstoqueContagem;
//      private Integer quantidadeEstoqueUltimaContagem;
        private Date dataContagem;
        private Date dataContagemPreparacao;
        private Usuario usuarioUltimaContagem;
        private Usuario usuarioUltimaContagemPreparacao;
        private String localizacao;
        private Boolean indicadorContagemSolicitada = false;
        */

       
        private Integer quantidadeMinimaTransferir;
        private Integer quantidadeVendida;
        private Integer quantidadeParaTransferir;
        private Integer quantidadeEstoqueAnterior;
        private Boolean indicadorSolicitarTransferencia = false;
        private Boolean retirarTransferenciaAutomatica;
       
        public ProdutoLojaDTO() {
        }
       
        public static String CONSULTA_DTO_COMPLETA_QUANTIDADE_VENDAS_E_SUBTIPO = "e.produto.sequencial, e.produto.codigo, e.produto.descricao, e.produto.subtipoProduto.sequencial, e.produto.subtipoProduto.descricao, "
                        + "e.loja.sequencial, e.quantidadeEstoque, e.retirarTransferenciaAutomatica"; // + QUANTIDADE_VENDIDA
        public static String CONSULTA_GROUPBY_DTO_COMPLETA_QUANTIDADE_VENDAS_E_SUBTIPO = "e.produto.sequencial, e.produto.codigo, e.produto.descricao, "
                        + "e.produto.subtipoProduto.sequencial, e.produto.subtipoProduto.descricao, e.loja.sequencial ";
        public ProdutoLojaDTO(Long sequencialProduto, String codigoProduto, String descricaoProduto, Long sequencialSubtipoProduto, String descricaoSubtipoProduto, Long sequencialLoja, Integer quantidadeEstoque, Boolean retirarTransferenciaAutomatica, Long quantidadeVendida) {
                this.produtoDTO = new ProdutoDTO(sequencialProduto, codigoProduto, descricaoProduto, sequencialSubtipoProduto, descricaoSubtipoProduto);
                this.lojaDTO = new LojaDTO(sequencialLoja);
                this.quantidadeEstoque = quantidadeEstoque;
                this.retirarTransferenciaAutomatica = retirarTransferenciaAutomatica;
                if (VerificadorUtil.naoEstaNulo(quantidadeVendida)) {
                        this.quantidadeVendida = quantidadeVendida.intValue();
                } else {
                        this.quantidadeVendida = 0;
                }
        }
       
        public static String CONSULTA_DTO_COMPLETA_QUANTIDADE_VENDAS = "e.produto.sequencial, e.produto.codigo, e.produto.descricao, "
                        + "e.loja.sequencial, e.quantidadeEstoque, e.retirarTransferenciaAutomatica"; // + QUANTIDADE_VENDIDA
        public static String CONSULTA_GROUPBY_DTO_COMPLETA_QUANTIDADE_VENDAS = "e.produto.sequencial, e.produto.codigo, e.produto.descricao, e.loja.sequencial ";
        public ProdutoLojaDTO(Long sequencialProduto, String codigoProduto, String descricaoProduto, Long sequencialLoja, Integer quantidadeEstoque, Boolean retirarTransferenciaAutomatica, Long quantidadeVendida) {
                this.produtoDTO = new ProdutoDTO(sequencialProduto, codigoProduto, descricaoProduto);
                this.lojaDTO = new LojaDTO(sequencialLoja);
                this.quantidadeEstoque = quantidadeEstoque;
                this.retirarTransferenciaAutomatica = retirarTransferenciaAutomatica;
                if (VerificadorUtil.naoEstaNulo(quantidadeVendida)) {
                        this.quantidadeVendida = quantidadeVendida.intValue();
                } else {
                        this.quantidadeVendida = 0;
                }
        }
       
        public ProdutoDTO getProdutoDTO() {
                return produtoDTO;
        }
        public void setProdutoDTO(ProdutoDTO produtoDTO) {
                this.produtoDTO = produtoDTO;
        }
       
        public LojaDTO getLojaDTO() {
                return lojaDTO;
        }
        public void setLojaDTO(LojaDTO lojaDTO) {
                this.lojaDTO = lojaDTO;
        }
       
        public Integer getQuantidadeEstoque() {
                return quantidadeEstoque;
        }
        public void setQuantidadeEstoque(Integer quantidadeEstoque) {
                this.quantidadeEstoque = quantidadeEstoque;
        }
       
        public Integer getQuantidadeMinimaTransferir() {
                return quantidadeMinimaTransferir;
        }
        public void setQuantidadeMinimaTransferir(Integer quantidadeMinimaTransferir) {
                this.quantidadeMinimaTransferir = quantidadeMinimaTransferir;
        }
       
        public Integer getQuantidadeVendida() {
                return quantidadeVendida;
        }
        public void setQuantidadeVendida(Integer quantidadeVendida) {
                this.quantidadeVendida = quantidadeVendida;
        }
       
        public Integer getQuantidadeParaTransferir() {
                return quantidadeParaTransferir;
        }
        public void setQuantidadeParaTransferir(Integer quantidadeParaTransferir) {
                this.quantidadeParaTransferir = quantidadeParaTransferir;
        }
       
        public Integer getQuantidadeEstoqueAnterior() {
                return quantidadeEstoqueAnterior;
        }
        public void setQuantidadeEstoqueAnterior(Integer quantidadeEstoqueAnterior) {
                this.quantidadeEstoqueAnterior = quantidadeEstoqueAnterior;
        }
       
        public Boolean getIndicadorSolicitarTransferencia() {
                return indicadorSolicitarTransferencia;
        }
        public void setIndicadorSolicitarTransferencia(Boolean indicadorSolicitarTransferencia) {
                this.indicadorSolicitarTransferencia = indicadorSolicitarTransferencia;
        }
       
        public Boolean getRetirarTransferenciaAutomatica() {
                if (VerificadorUtil.estaNulo(retirarTransferenciaAutomatica)) {
                        retirarTransferenciaAutomatica = false;
                }
                return retirarTransferenciaAutomatica;
        }
        public void setRetirarTransferenciaAutomatica(Boolean retirarTransferenciaAutomatica) {
                this.retirarTransferenciaAutomatica = retirarTransferenciaAutomatica;
        }
       
        public Long getSequencialDoProduto() {
                return VerificadorUtil.naoEstaNulo(getProdutoDTO())? getProdutoDTO().getSequencial() : null;
        }
       
        /*******************************************/
       
        public Integer quantidadeParaComprar(Integer quantidadeVendas, Integer quantidadeEstoque) {
                return (getQuantidadeMinimaTransferir() * quantidadeVendas) - quantidadeEstoque;
        }
       
        public Integer quantidadeParaTransferir() {
                if (VerificadorUtil.estaNulo(getQuantidadeVendida())) {
                        setQuantidadeVendida(0);
                }
                if (VerificadorUtil.estaNulo(getQuantidadeEstoque())) {
                        setQuantidadeEstoque(0);
                }
                if (VerificadorUtil.estaNulo(getQuantidadeMinimaTransferir())) {
                        setQuantidadeMinimaTransferir(1);
                }
                return (getQuantidadeMinimaTransferir() * getQuantidadeVendida()) - getQuantidadeEstoque();
//              return (getQuantidadeEstoque() - getQuantidadeVendida()) * getQuantidadeMinimaTransferir() * -1;
        }

}