package br.com.ec.domain.dto;
import java.util.Date;
import br.com.ec.domain.model.Fornecedor;
public class AnaliseVendaProdutoDTO
{
private ProdutoDTO produtoDTO
;
private Integer quantidadeEstoque
;
private Integer quantidadeVendas
;
private Date dataUltimaCompra
;
private Date dataUltimaVenda
;
private ProdutoPedidoCompraDTO produtoPedidoCompraDTO
;
private FornecedorDTO fornecedorDTO
;
// private RankingModeloDTO rankingModelo;
// private List<RankingComprasTransferenciasEstiloDTO> estilos;
// private List<RankingComprasTransferenciasAlertaDTO> alertas;
private Integer quantidadeAlertasPossiveis
;
public AnaliseVendaProdutoDTO
() {
// setEstilos(new ArrayList<RankingComprasTransferenciasEstiloDTO>());
// setAlertas(new ArrayList<RankingComprasTransferenciasAlertaDTO>());
setQuantidadeAlertasPossiveis
(0);
}
public ProdutoDTO getProdutoDTO
() {
return produtoDTO
;
}
public void setProdutoDTO
(ProdutoDTO produtoDTO
) {
this.
produtoDTO = produtoDTO
;
}
public Integer getQuantidadeAlertasPossiveis
() {
return quantidadeAlertasPossiveis
;
}
public void setQuantidadeAlertasPossiveis
(Integer quantidadeAlertasPossiveis
) {
this.
quantidadeAlertasPossiveis = quantidadeAlertasPossiveis
;
}
public Integer getQuantidadeEstoque
() {
return quantidadeEstoque
;
}
public void setQuantidadeEstoque
(Integer quantidadeEstoque
) {
this.
quantidadeEstoque = quantidadeEstoque
;
}
public Integer getQuantidadeVendas
() {
return quantidadeVendas
;
}
public void setQuantidadeVendas
(Integer quantidadeVendas
) {
this.
quantidadeVendas = quantidadeVendas
;
}
public Date getDataUltimaCompra
() {
return dataUltimaCompra
;
}
public void setDataUltimaCompra
(Date dataUltimaCompra
) {
this.
dataUltimaCompra = dataUltimaCompra
;
}
public Date getDataUltimaVenda
() {
return dataUltimaVenda
;
}
public void setDataUltimaVenda
(Date dataUltimaVenda
) {
this.
dataUltimaVenda = dataUltimaVenda
;
}
public ProdutoPedidoCompraDTO getProdutoPedidoCompraDTO
() {
return produtoPedidoCompraDTO
;
}
public void setProdutoPedidoCompraDTO
(ProdutoPedidoCompraDTO produtoPedidoCompraDTO
) {
this.
produtoPedidoCompraDTO = produtoPedidoCompraDTO
;
}
public FornecedorDTO getFornecedorDTO
() {
return fornecedorDTO
;
}
public void setFornecedorDTO
(FornecedorDTO fornecedorDTO
) {
this.
fornecedorDTO = fornecedorDTO
;
}
/*********************************************/
/*
public List<RankingComprasTransferenciasAlertaDTO> verificarAlertasLogistica(Double quantidadeMinimaParaTransferirOuComprar) {
List<RankingComprasTransferenciasAlertaDTO> alertas = new ArrayList<RankingComprasTransferenciasAlertaDTO>();
for (RankingComprasTransferenciasEstiloDTO estilo : getEstilos()) {
Integer estoqueTotalMatriz = 0;
for (RankingComprasTransferenciasEstiloPorLojaDTO estiloPorLoja : estilo.getRankingsPorLoja()) {
if (estiloPorLoja.getLojaDTO().getSequencial().equals(ConstantesSEC.Loja.SEQUENCIAL_MATRIZ_ESTOQUE_9)) {
estoqueTotalMatriz = estiloPorLoja.getQuantidadeEstoqueGeral();
break;
}
}
Integer estoqueMaiorLojaPrioridade = 0;
Integer quantidadeAlertasPossiveis = 0;
LojaDTO lojaMaiorPrioridade = null;
for (RankingComprasTransferenciasEstiloPorLojaDTO estiloPorLoja : estilo.getRankingsPorLoja()) {
if (!estiloPorLoja.getLojaDTO().getSequencial().equals(ConstantesSEC.Loja.SEQUENCIAL_MATRIZ_ESTOQUE_9)) {
estiloPorLoja.setQuantidadeMinimaTransferir(quantidadeMinimaParaTransferirOuComprar);
// VERIFICAR SE HÁ ESTOQUE NA MATRIZ E NÃO TEM EM ALGUMA LOJA
if (estoqueTotalMatriz > 0) {
if (estiloPorLoja.getQuantidadeEstoqueGeral() <= 0) {
adicionarAlertaLogistica(alertas, estiloPorLoja.getLojaDTO(), estilo.getEstilo(), TipoAlertaComprasTransferencias.SEM_ESTOQUE);
} else {
quantidadeAlertasPossiveis++;
}
}
// VERIFICAR SE TEM PARA TRANSFERIR
if (estiloPorLoja.quantidadeParaTransferirUnissex() > 0 ||
estiloPorLoja.quantidadeParaTransferirMasculino() > 0 ||
estiloPorLoja.quantidadeParaTransferirFeminino() > 0) {
adicionarAlertaLogistica(alertas, estiloPorLoja.getLojaDTO(), estilo.getEstilo(), TipoAlertaComprasTransferencias.TRANSFERIR);
} else {
quantidadeAlertasPossiveis++;
}
// VERIFICAR SE TEM ALGUMA LOJA DE MAIOR PRIORIDADE COM ESTOQUE MENOR
if (estoqueMaiorLojaPrioridade > 0) {
Integer estoqueTotalLoja = estiloPorLoja.getQuantidadeEstoqueGeral();
if (estoqueMaiorLojaPrioridade < estoqueTotalLoja) {
adicionarAlertaLogistica(alertas, lojaMaiorPrioridade, estilo.getEstilo(), TipoAlertaComprasTransferencias.ESTOQUE_MENOR_PRIORIDADE);
} else {
quantidadeAlertasPossiveis++;
}
}
estoqueMaiorLojaPrioridade = estiloPorLoja.getQuantidadeEstoqueGeral();
lojaMaiorPrioridade = estiloPorLoja.getLojaDTO();
}
}
setQuantidadeAlertasPossiveis(quantidadeAlertasPossiveis);
}
return alertas;
}
private void adicionarAlertaLogistica(List<RankingComprasTransferenciasAlertaDTO> alertas, LojaDTO lojaDTO, TipoEstiloProduto estilo, TipoAlertaComprasTransferencias tipoAlerta) {
Boolean adicionarAlerta = true;
for (RankingComprasTransferenciasAlertaDTO alerta : alertas) {
if (alerta.getLoja().equals(lojaDTO) && alerta.getEstilo().equals(estilo)) {
adicionarAlerta = false;
}
}
if (adicionarAlerta) {
RankingComprasTransferenciasAlertaDTO alerta = new RankingComprasTransferenciasAlertaDTO();
alerta.setLoja(lojaDTO);
alerta.setEstilo(estilo);
alerta.setTipoAlertaComprasTransferencias(tipoAlerta);
alertas.add(alerta);
}
}
public List<RankingComprasTransferenciasAlertaDTO> verificarAlertasCompras(Double quantidadeMinimaParaComprar) {
List<RankingComprasTransferenciasAlertaDTO> alertas = new ArrayList<RankingComprasTransferenciasAlertaDTO>();
for (RankingComprasTransferenciasEstiloDTO estilo : getEstilos()) {
estilo.setQuantidadeMinimaComprar(quantidadeMinimaParaComprar);
if (estilo.quantidadeParaComprarUnissex() > 0) {
adicionarAlertaCompras(alertas, estilo.getEstilo(), TipoAlertaComprasTransferencias.COMPRAR, TipoGenero.UNISSEX);
} else {
quantidadeAlertasPossiveis++;
}
if (estilo.quantidadeParaComprarMasculino() > 0) {
adicionarAlertaCompras(alertas, estilo.getEstilo(), TipoAlertaComprasTransferencias.COMPRAR, TipoGenero.MASCULINO);
} else {
quantidadeAlertasPossiveis++;
}
if (estilo.quantidadeParaComprarFeminino() > 0) {
adicionarAlertaCompras(alertas, estilo.getEstilo(), TipoAlertaComprasTransferencias.COMPRAR, TipoGenero.FEMININO);
} else {
quantidadeAlertasPossiveis++;
}
}
return alertas;
}
private void adicionarAlertaCompras(List<RankingComprasTransferenciasAlertaDTO> alertas, TipoEstiloProduto estilo, TipoAlertaComprasTransferencias tipoAlerta, TipoGenero genero) {
Boolean adicionarAlerta = true;
for (RankingComprasTransferenciasAlertaDTO alerta : alertas) {
if (alerta.getEstilo().equals(estilo)) {
adicionarAlerta = false;
}
}
if (adicionarAlerta) {
RankingComprasTransferenciasAlertaDTO alerta = new RankingComprasTransferenciasAlertaDTO();
alerta.setEstilo(estilo);
alerta.setTipoAlertaComprasTransferencias(tipoAlerta);
alerta.setGenero(genero);
alertas.add(alerta);
}
}
*/
}