package br.com.ec.infrastructure.repository;
import java.util.Date;
import java.util.List;
import java.util.Map;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.domain.dto.GraficoAcumuladoDTO;
import br.com.ec.domain.dto.ParametrosConsultaModelosMaisVendidosDTO;
import br.com.ec.domain.dto.ParametrosConsultaParaComprasTransferenciasDTO;
import br.com.ec.domain.dto.ParametrosConsultaProdutosVendidosDTO;
import br.com.ec.domain.dto.ParametrosConsultaVendasDTO;
import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloDTO;
import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloPorLoja;
import br.com.ec.domain.dto.RankingModeloDTO;
import br.com.ec.domain.dto.RankingProdutoDTO;
import br.com.ec.domain.dto.VendasDTO;
import br.com.ec.domain.model.FormaPagamento;
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.Venda;
public interface VendaRepository
extends GenericRepository
<Venda
> {
Venda detalharVenda
(Venda venda
);
Venda detalharVendaCompleta
(Venda venda
);
Integer obterQuantidadeDeVendasPorLojaEePeriodo
(Venda venda,
Date dataInicial,
Date dataFinal
);
List<Venda
> consultarVendasDoDia
(Long sequencialLoja,
Date data
);
Double obterValorTotalBrutoDeVendasPorLojaEePeriodo
(Loja loja,
Date dataInicial,
Date dataFinal
);
Double obterValorTotalBrutoDeVendasPorLojaEePeriodo
(ParametrosConsultaVendasDTO parametrosConsulta
);
Double obterValorDeCuponsUtilizadosPorLojaEePeriodo
(ParametrosConsultaVendasDTO parametrosConsulta
);
Double obterValorTotalDeDescontosPorLojaEePeriodo
(ParametrosConsultaVendasDTO parametrosConsulta
);
Double obterValorTotalBrutoDeVendasPorLojaEePeriodoEeFormasDePagamento
(ParametrosConsultaVendasDTO parametrosConsultaVendas,
List<FormaPagamento
> formasDePagamento
);
Double obterValorTotalLiquidoDeVendasPorLojaEePeriodo
(ParametrosConsultaVendasDTO parametrosConsulta
);
Integer obterQuantidadeProdutosVendidosPorLojaEePeriodo
(ParametrosConsultaVendasDTO parametrosConsulta
);
Integer obterQuantidadeProdutosVendidosPorLojaEePeriodoNaoVivo
(ParametrosConsultaVendasDTO parametrosConsulta
);
Double obterValorProdutosUtilizadosEmVendasPorLojaEePeriodo
(ParametrosConsultaVendasDTO parametrosConsulta
);
List<Venda
> consultarVendasPorDemanda
(ParametrosConsulta
<Venda
> parametrosConsulta,
Integer primeiroRegistro,
Integer tamanhoPagina,
String sortField,
String orderSort,
Map<String,
Object> filters
);
List<Venda
> consultarVendaPorParametros
(ParametrosConsultaVendasDTO parametrosConsultaVendas
);
GraficoAcumuladoDTO consultarGrafico
(String mes,
String ano
);
List<RankingProdutoDTO
> consultarProdutosVendidos
(ParametrosConsultaProdutosVendidosDTO parametrosConsulta
);
List<RankingProdutoDTO
> consultarProdutosVendidosResumido
(ParametrosConsultaProdutosVendidosDTO parametrosConsulta
);
List<RankingProdutoDTO
> consultarProdutosMaisVendidos
(Date dataInicial,
Date dataFinal,
Integer quantidadeProdutos,
String tipoOrdenacao,
Long sequencialLoja,
String tipoProduto, Produto produto, Marca marca
);
List<RankingModeloDTO
> consultarModelosMaisVendidos
(ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta
);
List<VendasDTO
> consultarVendas
(ParametrosConsultaVendasDTO parametrosConsultaVendasDTO
);
Integer obterQuantidadeProdutosVendidosPorEstiloEeGenero
(Date dataInicial,
Date dataFinal,
Long sequencialLoja,
Long sequencialModelo,
String tipoProduto,
String estiloProduto,
String tipoGenero
);
RankingComprasTransferenciasEstiloDTO consultarEstoqueEeVendasPorEstilo
(ParametrosConsultaParaComprasTransferenciasDTO parametrosConsulta, Modelo modelo
);
List<RankingComprasTransferenciasEstiloPorLoja
> consultarEstoqueEeVendasEstiloPorLoja
(ParametrosConsultaParaComprasTransferenciasDTO parametrosParaConsulta, Modelo modelo
);
List<RankingProdutoDTO
> consultarProdutosParaTransferir
(ParametrosConsultaProdutosVendidosDTO parametrosConsulta
);
}