package br.com.ec.infrastructure.repository;
import java.util.Date;
import java.util.List;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.domain.dto.ParametrosConsultaLancamentosDTO;
import br.com.ec.domain.model.Conta;
import br.com.ec.domain.model.Parcela;
import br.com.ec.domain.model.Venda;
import br.com.ec.domain.model.tipos.TipoCartao;
public interface ParcelaRepository
extends GenericRepository
<Parcela
> {
List<Parcela
> consultarParcelas
(ParametrosConsultaLancamentosDTO parcelaConsulta
);
List<Parcela
> consultarParcelasAVencer
(Conta conta
);
List<Parcela
> consultarParcelasAReceber
(Date dataRecebimento, TipoCartao tipoCartao
);
List<Parcela
> consultarParcelasRecebidas
(Date dataRecebimento, TipoCartao tipoCartao
);
List<Parcela
> consultarParcelasDaVenda
(Long sequencialVenda
);
Boolean verificarPossuiParcelaAberta
(Venda venda
);
Boolean verificarPossuiParcelaAbertaParaPagamento
(Conta conta
);
Boolean verificarPossuiParcela
(Venda venda
);
List<Parcela
> consultarParcelasDaConta
(Conta conta
);
Double obterValorPassandoParametrosConsulta
(ParametrosConsulta
<Parcela
> parametrosConsulta
);
/*
List<Parcela> consultarParcelasPorPeriodo(Parcela parcela, Boolean pagamentoRealizado, Boolean ehContaAReceber, Date dataInicial, Date dataFinal, String ordenacao, int first, int pageSize);
Integer obterQuantidadeRegistrosConsultarParcelasPorPeriodo(Parcela parcela, Boolean pagamentoRealizado, Boolean ehContaAReceber, Date dataInicial, Date dataFinal);
*/
}