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 Long sequencialProduto
;
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 Boolean indicadorSolicitarTransferencia =
false;
public ProdutoLojaDTO
() {
}
public static String CONSULTA_DTO_COMPLETA_QUANTIDADE_VENDAS =
"e.produto.sequencial, e.loja.sequencial, e.quantidadeEstoque"; // + QUANTIDADE_VENDIDA
public ProdutoLojaDTO
(Long sequencialProduto,
Long sequencialLoja,
Integer quantidadeEstoque,
Long quantidadeVendida
) {
this.
sequencialProduto = sequencialProduto
;
this.
lojaDTO =
new LojaDTO
(sequencialLoja
);
this.
quantidadeEstoque = quantidadeEstoque
;
if (VerificadorUtil.
naoEstaNulo(quantidadeVendida
)) {
this.
quantidadeVendida = quantidadeVendida.
intValue();
} else {
this.
quantidadeVendida =
0;
}
}
public Long getSequencialProduto
() {
return sequencialProduto
;
}
public void setSequencialProduto
(Long sequencialProduto
) {
this.
sequencialProduto = sequencialProduto
;
}
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 Boolean getIndicadorSolicitarTransferencia
() {
return indicadorSolicitarTransferencia
;
}
public void setIndicadorSolicitarTransferencia
(Boolean indicadorSolicitarTransferencia
) {
this.
indicadorSolicitarTransferencia = indicadorSolicitarTransferencia
;
}
/*******************************************/
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 (getQuantidadeEstoque
() - getQuantidadeVendida
()) * getQuantidadeMinimaTransferir
() * -
1;
}
}