package br.com.ec.domain.service;
import java.util.Date;
import java.util.List;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.ContaBancariaDTO;
import br.com.ec.domain.dto.ParcelaDTO;
import br.com.ec.domain.dto.consulta.ParametrosConsultaParcelasDTO;
import br.com.ec.domain.model.Parcela;
import br.com.ec.domain.model.tipos.TipoCartao;
public interface ParcelaService
extends GenericService
<Parcela
> {
List<ParcelaDTO
> consultarParcelas
(ParametrosConsultaParcelasDTO parametrosConsultaParcelasDTO
);
List<ParcelaDTO
> consultarParcelasAReceber
(Long sequencialContaBancaria,
Date dataRecebimento, TipoCartao tipoCartao
);
List<ParcelaDTO
> consultarParcelasRecebidas
(Long sequencialContaBancaria,
Date dataRecebimento, TipoCartao tipoCartao
);
/*
void cancelarParcela(Parcela entidade);
void receberParcelas(Date dataRecebimento, List<Parcela> parcelasSelecionadas);
void lancarParcela(Parcela parcela);
List<Parcela> consultarParcelas(ParametrosConsultaLancamentosDTO parcelaConsulta);
List<Parcela> consultarParcelasAVencer(Conta conta);
List<Parcela> consultarParcelasDaVenda(Long sequencialVenda);
Boolean verificarPossuiParcelaAberta(Venda venda);
Boolean verificarPossuiParcelaAbertaParaPagamento(Conta conta);
Boolean verificarPossuiParcela(Venda venda);
Conta gerarParcelas(VendaFormaPagamento vendaFormaPagamento, Conta conta);
Conta gerarParcelasDaVenda(Venda venda, Conta conta);
Conta gerarParcelasDinheiroDaVenda(Venda venda, Conta conta);
Conta gerarParcelasCartaoDaVenda(Venda venda, Conta conta);
ContaGerenciadorDTO cadastrarNovaParcelaPelaFrequencia(Parcela parcela);
List<CartaoDTO> gerarContasDosCartoes(List<VendaFormaPagamento> listaVendaFormaPagamento);
List<CartaoDTO> consultarContasDosCartoes(Date dataInicial, Date dataFinal);
Double obterValorPassandoParametrosConsulta(ParametrosConsulta<Parcela> parametrosConsulta);
void cadastrarContaComParcelasNaCompra(Compra compra, List<Parcela> listaParcelas);
*/
}