package br.com.ec.domain.service.parcela;
import java.util.Date;
import java.util.List;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.CartaoDTO;
import br.com.ec.domain.dto.ContaGerenciadorDTO;
import br.com.ec.domain.dto.ParametrosConsultaLancamentosDTO;
import br.com.ec.domain.model.Compra;
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.VendaFormaPagamento;
import br.com.ec.domain.model.tipos.TipoCartao;
public interface ParcelaService
extends GenericService
<Parcela
> {
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
> 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
);
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
);
}