package br.com.ec.infrastructure.repository;
import java.util.Date;
import java.util.List;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.domain.dto.TransferenciaProdutoDTO;
import br.com.ec.domain.model.Fornecedor;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.NotaFiscal;
import br.com.ec.domain.model.Produto;
import br.com.ec.domain.model.ProdutoLoja;
import br.com.ec.domain.model.Transferencia;
import br.com.ec.domain.model.TransferenciaProduto;
public interface TransferenciaRepository
extends GenericRepository
<Transferencia
> {
Transferencia detalharTransferencia
(Transferencia transferencia
);
Integer obterQuantidadeDeTransferenciasAbertas
(Loja loja
);
Integer obterQuantidadeDeTransferenciasParaReceberAbertas
(Loja loja,
Date dataInicial,
Date dataFinal
);
Boolean verificarSeProdutoPossuiTransferenciasAbertas
(ProdutoLoja produtoLoja
);
List<TransferenciaProduto
> consultarTransferenciasAbertas
(Produto produto
);
List<TransferenciaProdutoDTO
> consultarProdutos
(Transferencia transferencia
);
List<TransferenciaProduto
> consultarProdutosVerificandoFornecedores
(Transferencia transferencia,
List<Fornecedor
> fornecedoresEmitemNota
);
void desvincularNotaFiscal
(NotaFiscal notaFiscal
);
// List<Venda> consultarTransferenciasDaLoja(Loja loja, Integer primeiroRegistro, Integer tamanhoPagina);
// ProdutoLoja consultarPorProdutoEeLoja(ProdutoLoja produtoLoja);
// Date consultarDataContagem(Produto produto, Loja loja);
// Integer consultarPorModeloEeLoja(Modelo modelo, Loja loja, String descricaoProduto, String tipoProduto, String genero);
}