package gcom.cobranca.contratoparcelamento;
import gcom.cobranca.CobrancaForma;
import gcom.cobranca.bean.ContaValoresHelper;
import gcom.faturamento.debito.DebitoACobrar;
import gcom.gui.cobranca.contratoparcelamento.DebitosClienteHelper;
import gcom.relatorio.cobranca.RelatorioEmitirContratoParcelamentoPorClienteBean;
import gcom.relatorio.cobranca.contratoparcelamento.FiltrarRelatorioEmitirContratoParcelamentoPorClienteHelper;
import gcom.relatorio.cobranca.contratoparcelamento.RelatorioEmitirExtratoContratoParcelamentoPorClienteBean;
import gcom.relatorio.cobranca.contratoparcelamento.EmitirExtratoContratoParcelamentoPorClienteHelper;
import gcom.relatorio.cobranca.contratoparcelamento.RelatorioManterContratoParcelamentoPorClienteBean;
import gcom.relatorio.cobranca.contratoparcelamento.RelatorioManterContratoParcelamentoRDBean;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ControladorException;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
/**
* Declara��o p�blica de servi�os do Session Bean de ControladorCliente
*
* @author Paulo Diniz
* @created 18 de mar�o 2011
*/
public interface ControladorContratoParcelamentoLocal extends javax.ejb.EJBLocalObject {
/**
* Inseri um ContratoParcelamento e suas QuantidadesPrestacoes associadas
*
* [UC1133] Inserir Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param contrato
* @param parcelas que o contrato possui
* @throws ControladorException
*/
public Integer inserirContratoParcelamentoRD(ContratoParcelamentoRD contrato, List<QuantidadePrestacoes> parcelas, Usuario usuarioLogados)
throws ControladorException;
/**
* Atualizar um ContratoParcelamento e suas QuantidadesPrestacoes associadas
*
* [UC1134] Manter Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param contrato
* @param parcelas que o contrato possui
* @throws ControladorException
*/
public void atualizarContratoParcelamentoRD(ContratoParcelamentoRD contrato, List<QuantidadePrestacoes> parcelas, Usuario usuarioLogado)
throws ControladorException;
/**
* Pesquisa ContratoParcelamentoRD por numero
*
* [UC1133] Inserir Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param numero do contrato
* @throws ControladorException
*/
public ContratoParcelamentoRD pesquisarContratoParcelamentoRDPorNumero(String numero)
throws ControladorException;
/**
* Pesquisa ContratoParcelamentoRD por id
*
* [UC1133] Inserir Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param numero do contrato
* @throws ControladorException
*/
public ContratoParcelamentoRD pesquisarContratoParcelamentoRDPorID(Integer id)
throws ControladorException;
/**
* Atualizar um ContratoParcelamento e suas QuantidadesPrestacoes associadas
*
* [UC1134] Manter Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param contrato
* @param parcelas que o contrato possui
* @throws ControladorException
*/
public boolean excluirContratosParcelamentoRD(String[] ids, Usuario usuarioLogado)
throws ControladorException;
/**
* Verifica Resolu��o de Diretoria associada a um Contrato Parcelamento n�o Encerrado
*
* [UC1134] Atualizar Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 10/04/2011
*
*/
public boolean verificaResolucaoDiretoriaAssociadaContratoParcelamentoNaoEncerrado(Integer id)
throws ControladorException;
/**
* Gerar Relatorio dos ContratoParcelamentoRD selecionados
*
* [UC1134] Manter Resolu��o de Diretoria para Contratos de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param ids dos Contratos
* @param filtro da Busca
* @throws ControladorException
*/
public List<RelatorioManterContratoParcelamentoRDBean> gerarRelatorioManterContratoParcelamentoRD(FiltroContratoParcelamentoRD filtro)
throws ControladorException;
/**
* Permite a inclus�o de contrato de parcelamento por cliente.
*
* [UC1136] Inserir Contrato de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param contrato
* @throws ControladorException
*/
public Integer inserirContratoParcelamentoPorCliente(ContratoParcelamento contrato, Usuario usuarioLogado,
ContratoParcelamentoCliente clienteContrato, ContratoParcelamentoCliente clienteSuperiorContrato, List<DebitosClienteHelper> listaDebitos, List<PrestacaoContratoParcelamento> listaDeParcelas)
throws ControladorException;
/**
* Verifica Conta Vinculada a um Contrato Parcelamento por Cliente Item
*
* [UC1143] Consultar Dados do Contrato de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 10/05/2011
*
*/
public boolean verificaContaVinculadaAContratoParcel(Integer idConta, Integer idContrato)
throws ControladorException ;
/**
* Gerar Relatorio dos ContratoParcelamentoPorCLiente selecionados
*
* [UC1137] Manter Contrato de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param ids dos Contratos
* @param filtro da Busca
* @throws ControladorException
*/
public List<RelatorioManterContratoParcelamentoPorClienteBean> gerarRelatorioManterContratoParcelamentoPorCliente(FiltroContratoParcelamentoCliente filtro) throws ControladorException;
/**
* Consultar Contrato de Parcelamento por Cliente Com Pagamento jah efetuado
*
* [UC1143] Consultar Dados do Contrato de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 10/05/2011
*
*/
public boolean verificaContratoParcelComPagamentoFeito(Integer idContrato) throws ControladorException;
/**
* Consultar Se Prestacao Ja Esta Paga
*
* [UC1143] Consultar Dados do Contrato de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 10/05/2011
*
*/
public boolean verificaPrestacaoPaga(Integer idPrestacao) throws ControladorException;
/**
* [UC1146] Informar Pagamento Contrato de Parcelamento por Cliente
*
* Pesquisa os dados do contrato de parcelamento
* [FS0003] � Validar contrato
*
* @author Mariana Victor
* @data 03/06/2011
*/
public Object[] pesquisarDadosContratoParcelamento(String numeroContrato)
throws ControladorException;
/**
* [UC1146] Informar Pagamento Contrato de Parcelamento por Cliente
*
* Pesquisa os dados do contrato de parcelamento
* [FS0003] � Validar contrato
*
* @author Mariana Victor
* @data 03/06/2011
*/
public Integer pesquisarDadosContratoParcelamentoNumeroParcelasPagas(Integer idContrato)
throws ControladorException;
/**
* [UC1146] Informar Pagamento Contrato de Parcelamento por Cliente
*
* Pesquisa os dados do contrato de parcelamento por cliente
* [FS0005] � Verificar exist�ncia de contratos para o cliente
*
* @author Mariana Victor
* @data 03/06/2011
*/
public Collection<Object[]> pesquisarDadosContratoParcelamentoPorCliente(Integer idCliente)
throws ControladorException;
/**
* [UC1146] Informar Pagamento Contrato de Parcelamento por Cliente
*
* Pesquisa os dados do contrato de parcelamento por cliente
* [SB0002] � Informar Dados do Pagamento
*
* @author Mariana Victor
* @data 06/06/2011
*/
public Object[] pesquisarDadosContratoParcelamentoPorClienteSelecionado(Integer idContrato)
throws ControladorException;
/**
* [UC1146] Informar Pagamento Contrato de Parcelamento por Cliente
*
* Desvincula a guia de pagamento do contrato de parcelamento,
* atualizando dados do contrato na tabela cobranca.CONTRATO_PARCEL_ITEM
*
* @author Mariana Victor
* @data 08/06/2011
*
* @param
* @return void
*/
public void atualizarContratoParcelamentoItemDesvincularGuiaContrato(String[] idsGuias)
throws ControladorException;
/**
* [UC1146] Informar Pagamento Contrato de Parcelamento por Cliente
* [SB0003] � Efetuar Pagamento da Parcela do Contrato de Parcelamento Por Cliente
*
* @author Mariana Victor
* @since 06/06/2011
* */
public Object[] efetuarPagamentoParcelaContratoParcelamentoPorCliente(InformarPagamentoContratoParcelamentoHelper helper,
Usuario usuarioLogado) throws ControladorException;
/**
* [UC1141] Emitir Contrato de Parcelamento por Cliente
*
* Retorna os registros com os dados a serem impressos no relat�rio
*
* @author Mariana Victor
* @since 10/06/2011
* */
public List<RelatorioEmitirContratoParcelamentoPorClienteBean> pesquisarDadosRelatorioContratoParcelamentoPorCliente(
FiltrarRelatorioEmitirContratoParcelamentoPorClienteHelper helper) throws ControladorException;
/**
* Permite a atualiza��o de contrato de parcelamento por cliente.
*
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
*
* @author Paulo Diniz
* @date 16/03/2011
*
* @param contrato
* @throws ControladorException
*/
public void atualizaContratoParcelamentoPorCliente(ContratoParcelamento contrato, Usuario usuarioLogado,
ContratoParcelamentoCliente clienteContrato, ContratoParcelamentoCliente clienteSuperiorContrato, List<DebitosClienteHelper> listaDebitos, List<DebitosClienteHelper> listaDebitosAnterior, List<PrestacaoContratoParcelamento> listaDeParcelas)
throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* Consulta o id da RD relacionada ao contrato de parcelamento
*
* @author Mariana Victor
* @data 29/06/2011
*/
public Integer pesquisarRDContratoParcelamento(Integer idContratoParcelamento) throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* Consulta os dados das contas vinculadas ao contrato de parcelamento
*
* @author Mariana Victor
* @data 02/07/2011
*/
public Collection<ContaValoresHelper> pesquisarDadosDasContasContratoParcelamento(Integer idContratoParcelamento) throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* [FS0008] � Verificar exist�ncia do contrato anterior
*
* @author Mariana Victor
* @data 08/07/2011
*/
public Boolean verificarExistenciaContratoAnterior(String numeroContratoAnterior) throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* [FS0037] - Verificar situa��o do contrato anterior
*
* Retorna a situa��o de parcelamento do contrato
*
* @author Mariana Victor
* @data 08/07/2011
*/
public Boolean verificarSituacaoContratoAnterior(String numeroContratoAnterior) throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* Consulta os dados dos d�bitos a cobrar vinculados ao contrato de parcelamento
*
* @author Mariana Victor
* @data 26/07/2011
*/
public Collection<DebitoACobrar> pesquisarDadosDosDebitosACobrarContratoParcelamento(
Integer idContratoParcelamento) throws ControladorException;
/**
* [UC0184] Manter D�bito A Cobrar
*
* Verifica se o d�bito a cobrar est� vinculado a um Contrato Parcelamento por Cliente
*
* @author Mariana Victor
* @date 28/07/2011
*/
public boolean verificaDebitoACobrarVinculadoContratoParcelamentoCliente(
Integer idDebitoACobrar) throws ControladorException;
/**
* [UC1200] Gerar Extrato de Contrato Parcelamento por Cliente
*
* Este caso de uso permite gerar o extrato do contrato de parcelamento do cliente.
*
* @author Mariana Victor
* @date 28/07/2011
*/
public void gerarExtratoDeContratoParcelamentoPorCliente (
Integer idCliente,
List<PrestacaoContratoParcelamento> colecaoPrestacaoContratoParcelamento)
throws ControladorException;
/**
* [UC1201] Emitir Extrato de Contrato de Parcelamento por Cliente
*
* 1. O sistema obt�m os dados do contrato de parcelamento por cliente
*
* @author Mariana Victor
* @data 30/07/2011
*/
public ContratoParcelamento obterDadosContratoParcelamento(String numeroContratoParcelamento)
throws ControladorException;
/**
* [UC1201] Emitir Extrato de Contrato de Parcelamento por Cliente
*
* 2.2. Dados do Parcelamento
*
* @author Mariana Victor
* @data 30/07/2011
*/
public Collection<PrestacaoContratoParcelamento> obterDadosPrestacoesContratoParcelamento(Integer idContratoParcelamento)
throws ControladorException;
/**
* [UC1201] Emitir Extrato de Contrato de Parcelamento por Cliente
*
* Retorna os registros com os dados a serem impressos no relat�rio
*
* @author Mariana Victor
* @throws ControladorException
* @data 30/07/2011
* */
public List<RelatorioEmitirExtratoContratoParcelamentoPorClienteBean> pesquisarDadosRelatorioEmitirExtratoContratoParcelamentoPorCliente(
EmitirExtratoContratoParcelamentoPorClienteHelper helper,
Collection<PrestacaoContratoParcelamentoHelper> colecaoHelper) throws ControladorException;
/**
* [UC1136] Inserir Contrato de Parcelamento por Cliente
*
* Retorna os dados do d�bito a cobrar caso exista algum pagamento para o mesmo.
*
* @author Mariana Victor
* @data 03/08/2011
*/
public Object[] obterDadosDebitoACobrarPagoAMenor(Integer idDebitoACobrar)
throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @data 05/08/2011
*/
public ContratoParcelamento pesquisarContratoParcelamentoCompleto(Integer idContrato, String numeroContrato)
throws ControladorException;
/**
* [UC1201] Emitir Extrato de Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @data 06/08/2011
*/
public Integer pesquisarIdClientecontrato(Integer idContratoParcelamento)
throws ControladorException;
/**
* [UC1140] Cancelar Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @data 06/08/2011
*/
public ContratoParcelamentoCliente pesquisarClienteContrato(Integer idContratoParcelamento)
throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @data 12/08/2011
*/
public ContratoParcelamentoCliente pesquisarClienteContrato(Integer idContratoParcelamento, Integer idCliente)
throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @data 15/08/2011
*/
public Collection<ContratoParcelamentoCliente> pesquisarClienteContrato(
Integer idContratoParcelamento,
Short indicadorClienteSuperior)
throws ControladorException;
/**
* [UC1141] Emitir Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @created 29/08/2011
*
* @param idContratoParcelamento
* @exception ControladorException
*/
public Collection<ContratoParcelamentoItem> pesquisarContratoParcelamentoItem(
Integer idContratoParcelamento, Integer idDocumentoTipo) throws ControladorException;
/**
* [UC1136] Inserir Contrato de Parcelamento por Cliente
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* Calcula e retorna os valores das parcelas do contrato de parcelamento.
*
* @author Mariana Victor
* @data 29/08/2011
*/
public InserirContratoParcelamentoValoresParcelasHelper calcularValoresParcelasContratoParcelamento(
BigDecimal valorContaSelecaoTotal, BigDecimal acrescimo, String indicadorDebitoAcresc,
String indicadorParcelJuros, BigDecimal jurosBigDec, int numeroParcelInicial, int numeroParcelFinal)
throws ControladorException;
/**
* [UC1136] Inserir Contrato de Parcelamento por Cliente
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* Calcula e retorna os valores das parcelas do contrato de parcelamento a partir de uma RD.
*
* @author Mariana Victor
* @data 29/08/2011
*/
public InserirContratoParcelamentoValoresParcelasHelper calcularValoresParcelasContratoParcelamentoRD(
BigDecimal valorContaSelecaoTotal, BigDecimal valorContaComAcrescimo, String indicadorDebitoAcresc,
String indicadorParcelJuros, ContratoParcelamento contratoParcelamento,
QuantidadePrestacoes quantidadePrestacoes)
throws ControladorException;
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* @author Mariana Victor
* @data 13/09/2011
*/
public CobrancaForma pesquisarFormaPagamentoRD(
Integer idRD)
throws ControladorException;
}