package br.com.ec.domain.dto;
import java.util.Date;
import java.util.List;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Fornecedor;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Marca;
import br.com.ec.domain.model.Modelo;
import br.com.ec.domain.model.Produto;
import br.com.ec.domain.model.SubtipoProduto;
import br.com.ec.domain.model.Vendedor;
import br.com.ec.domain.model.tipos.TipoOrdenacaoMaisVendidos;
import br.com.ec.domain.model.tipos.TipoPeriodoConsulta;
public class ParametrosConsultaProdutosVendidosDTO
extends ParametrosConsulta
<RankingProdutoDTO
> implements Cloneable {
private Produto produto
;
private Loja loja
;
private Integer quantidadeProdutos
;
private String tipoProduto
;
private String tipoOrdenacao
;
private Marca marca
;
private Modelo modelo
;
private SubtipoProduto subtipoProduto
;
private Fornecedor fornecedor
;
private Vendedor vendedor
;
private List<Loja
> lojasParaConsulta
;
private String tipoPeriodoConsulta
;
private Date dataInicial
;
private Date dataFinal
;
private Integer quantidadeMinimaComprar
;
private Boolean somenteParaComprar =
true;
private Boolean comCasaDasCapas =
false;
private Loja lojaSelecionada
;
private Integer estoqueMinimo
;
private Boolean consultarPorEstoque
;
private int primeiroRegistro
;
private int tamanhoPagina
;
private Boolean indicadorModeloFavorito
;
@
SuppressWarnings("static-access")
public ParametrosConsultaProdutosVendidosDTO
() {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(new DataUtils
().
getPrimeiroDiaDoMesAtual()));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(new DataUtils
().
getUltimoDiaDoMesAtual()));
setTipoPeriodoConsulta
(TipoPeriodoConsulta.
ULTIMOS_15_DIAS.
getValor());
atualizarPeriodo
();
setQuantidadeMinimaComprar
(1);
}
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 Integer getQuantidadeProdutos
() {
return quantidadeProdutos
;
}
public void setQuantidadeProdutos
(Integer quantidadeProdutos
) {
this.
quantidadeProdutos = quantidadeProdutos
;
}
public String getTipoProduto
() {
return tipoProduto
;
}
public void setTipoProduto
(String tipoProduto
) {
this.
tipoProduto = tipoProduto
;
}
public String getTipoOrdenacao
() {
return tipoOrdenacao
;
}
public void setTipoOrdenacao
(String tipoOrdenacao
) {
this.
tipoOrdenacao = tipoOrdenacao
;
}
public Marca getMarca
() {
return marca
;
}
public void setMarca
(Marca marca
) {
this.
marca = marca
;
}
public Modelo getModelo
() {
return modelo
;
}
public void setModelo
(Modelo modelo
) {
this.
modelo = modelo
;
}
public SubtipoProduto getSubtipoProduto
() {
return subtipoProduto
;
}
public void setSubtipoProduto
(SubtipoProduto subtipoProduto
) {
this.
subtipoProduto = subtipoProduto
;
}
public Fornecedor getFornecedor
() {
return fornecedor
;
}
public void setFornecedor
(Fornecedor fornecedor
) {
this.
fornecedor = fornecedor
;
}
public Vendedor getVendedor
() {
return vendedor
;
}
public void setVendedor
(Vendedor vendedor
) {
this.
vendedor = vendedor
;
}
public List<Loja
> getLojasParaConsulta
() {
return lojasParaConsulta
;
}
public void setLojasParaConsulta
(List<Loja
> lojasParaConsulta
) {
this.
lojasParaConsulta = lojasParaConsulta
;
}
public String getTipoPeriodoConsulta
() {
return tipoPeriodoConsulta
;
}
public void setTipoPeriodoConsulta
(String tipoPeriodoConsulta
) {
this.
tipoPeriodoConsulta = tipoPeriodoConsulta
;
}
public Date getDataInicial
() {
return dataInicial
;
}
public void setDataInicial
(Date dataInicial
) {
this.
dataInicial = dataInicial
;
}
public Date getDataFinal
() {
return dataFinal
;
}
public void setDataFinal
(Date dataFinal
) {
this.
dataFinal = dataFinal
;
}
public Integer getQuantidadeMinimaComprar
() {
return quantidadeMinimaComprar
;
}
public void setQuantidadeMinimaComprar
(Integer quantidadeMinimaComprar
) {
this.
quantidadeMinimaComprar = quantidadeMinimaComprar
;
}
public Boolean getSomenteParaComprar
() {
return somenteParaComprar
;
}
public void setSomenteParaComprar
(Boolean somenteParaComprar
) {
this.
somenteParaComprar = somenteParaComprar
;
}
public Boolean getComCasaDasCapas
() {
return comCasaDasCapas
;
}
public void setComCasaDasCapas
(Boolean comCasaDasCapas
) {
this.
comCasaDasCapas = comCasaDasCapas
;
}
public Loja getLojaSelecionada
() {
return lojaSelecionada
;
}
public void setLojaSelecionada
(Loja lojaSelecionada
) {
this.
lojaSelecionada = lojaSelecionada
;
}
public Integer getEstoqueMinimo
() {
return estoqueMinimo
;
}
public void setEstoqueMinimo
(Integer estoqueMinimo
) {
this.
estoqueMinimo = estoqueMinimo
;
}
public Boolean getConsultarPorEstoque
() {
return consultarPorEstoque
;
}
public void setConsultarPorEstoque
(Boolean consultarPorEstoque
) {
this.
consultarPorEstoque = consultarPorEstoque
;
}
public int getPrimeiroRegistro
() {
return primeiroRegistro
;
}
public void setPrimeiroRegistro
(int primeiroRegistro
) {
this.
primeiroRegistro = primeiroRegistro
;
}
public int getTamanhoPagina
() {
return tamanhoPagina
;
}
public void setTamanhoPagina
(int tamanhoPagina
) {
this.
tamanhoPagina = tamanhoPagina
;
}
public Boolean getIndicadorModeloFavorito
() {
return indicadorModeloFavorito
;
}
public void setIndicadorModeloFavorito
(Boolean indicadorModeloFavorito
) {
this.
indicadorModeloFavorito = indicadorModeloFavorito
;
}
public Boolean ordenadoPorData
() {
return VerificadorUtil.
naoEstaNuloOuVazio(getTipoOrdenacao
())? getTipoOrdenacao
().
equals(TipoOrdenacaoMaisVendidos.
DATA.
getValor())? true :
false :
false;
}
public void atualizarPeriodo
() {
if (getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
ULTIMOS_7_DIAS.
getValor())) {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
7)));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(DataUtils.
getDataAtual()));
}
if (getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
ULTIMOS_15_DIAS.
getValor())) {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
15)));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(DataUtils.
getDataAtual()));
}
if (getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
ULTIMOS_30_DIAS.
getValor())) {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
30)));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(DataUtils.
getDataAtual()));
}
if (getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
ULTIMOS_60_DIAS.
getValor())) {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
60)));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(DataUtils.
getDataAtual()));
}
if (getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
ULTIMOS_90_DIAS.
getValor())) {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(DataUtils.
acrescentarDias(DataUtils.
getDataAtual(), -
90)));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(DataUtils.
getDataAtual()));
}
if (getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
MES_ATUAL.
getValor())) {
setDataInicial
(new DataUtils
().
getDataComHorarioMinimo(DataUtils.
getPrimeiroDiaDoMesAtual()));
setDataFinal
(new DataUtils
().
getDataComHorarioMaximo(DataUtils.
getUltimoDiaDoMesAtual()));
}
}
public Boolean ehTipoPeriodoEspecifico
() {
return getTipoPeriodoConsulta
().
equals(TipoPeriodoConsulta.
PERIODO_ESPECIFICO.
getValor());
}
@
Override
public ParametrosConsultaProdutosVendidosDTO clone
() {
try {
return (ParametrosConsultaProdutosVendidosDTO
)super.
clone();
} catch (CloneNotSupportedException e
) {
e.
printStackTrace();
}
return null;
}
}