package br.com.ec.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.FormaPagamentoDTO;
import br.com.ec.domain.dto.ParcelaDTO;
import br.com.ec.domain.dto.consulta.ParametrosConsultaParcelasDTO;
import br.com.ec.domain.model.Parcela;
public interface ParcelaRepository
extends GenericRepository
<Parcela
> {
List<ParcelaDTO
> consultarParcelas
(ParametrosConsultaParcelasDTO parametrosConsultaParcelasDTO
);
List<ParcelaDTO
> consultarParcelas
(Long sequencialContaBancaria,
Date dataRecebimento,
List<FormaPagamentoDTO
> formasDePagamento
);
List<ParcelaDTO
> consultarParcelasAReceber
(Long sequencialContaBancaria,
Date dataRecebimento,
List<FormaPagamentoDTO
> formasDePagamento
);
List<ParcelaDTO
> consultarParcelasRecebidas
(Long sequencialContaBancaria,
Date dataRecebimento,
List<FormaPagamentoDTO
> formasDePagamento
);
List<ParcelaDTO
> consultarParcelasDaPessoaEeCategoriaEeVigencia
(Long sequencialPessoa,
Long sequencialCategoria,
Long sequencialVigencia
);
void conciliarParcelas
(Date dataConciliacao,
List<ParcelaDTO
> parcelasSelecionadas
);
void alterarObservacao
(Long sequencial,
String observacao
);
Double obterValorPassandoParametrosConsulta
(ParametrosConsulta
<Parcela
> parametrosConsulta
);
List<ParcelaDTO
> consultarParcelasPassandoParametrosConsulta
(ParametrosConsulta
<Parcela
> parametrosConsulta
);
Boolean verificarPossuiParcelaEmAberta
(Long sequencialConta,
Long sequencialVenda
);
List<Parcela
> consultarParcelasDaConta
(Long sequencialConta
);
void atualizarValorParcela
(ParcelaDTO parcelaDTO
);
/*
List<Parcela> consultarParcelas(ParametrosConsultaLancamentosDTO parcelaConsulta);
List<Parcela> consultarParcelasAVencer(Conta conta);
List<Parcela> consultarParcelasDaVenda(Long sequencialVenda);
Boolean verificarPossuiParcelaAbertaParaPagamento(Conta conta);
Boolean verificarPossuiParcela(Venda venda);
*/
/*
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);
*/
}