//Baixar um título com base no id de referencia public override TituloReceita liquidar(int idReceita, List <TituloReceitaPagamento> listaPagamentos, int idUsuarioBaixa) { var OTituloReceita = this.OTituloReceitaBL.carregarPorReceita(idReceita); if (OTituloReceita == null) { var OAssociadoMensalidade = this.OAssociadoContribuicaoBL.carregar(idReceita); //this.OTituloReceitaBL.gerar(OAssociadoMensalidade); OTituloReceita = OTituloReceitaBL.carregarPorReceita(idReceita); } if (OTituloReceita.dtQuitacao.HasValue) { return(OTituloReceita); } //OTituloReceitaBL.removerParcelas(OTituloReceita.id, idUsuarioBaixa); foreach (var OPagamento in listaPagamentos) { OPagamento.idMeioPagamento = OPagamento.definirMeioPagamento(); OPagamento.idFormaPagamento = OPagamento.definirFormaPagamento(); OPagamento.dtCredito = OPagamento.dtCredito; OPagamento.idTituloReceita = OTituloReceita.id; OPagamento.valorOriginal = OTituloReceita.valorTotal.Value; OPagamento.valorRecebido = OTituloReceita.valorTotal.Value; OPagamento.dtBaixa = DateTime.Today; OPagamento.flagBaixaAutomatica = false; OPagamento.idUsuarioBaixa = idUsuarioBaixa; if (OTituloReceita.dtVencimento.HasValue) { OPagamento.dtVencimento = OTituloReceita.dtVencimento.Value; } OPagamento.setDefaultInsertValues(); this.db.TituloReceitaPagamento.Add(OPagamento); } this.db.SaveChanges(); this.liquidar(OTituloReceita); this.onMensalidadeQuitada.subscribe(new OnMensalidadeQuitadaHandler()); this.onMensalidadeQuitada.publish((OTituloReceita.id as object)); return(OTituloReceita); }
//Liquidar receita de acordo com lista de pagamentos informada public virtual TituloReceita liquidar(TituloReceita OTituloReceita, List <TituloReceitaPagamento> listaPagamentos) { if (OTituloReceita.dtQuitacao.HasValue) { this.liquidar(OTituloReceita); return(OTituloReceita); } //this.OTituloReceitaBL.removerParcelas(OTituloReceita.id, OTituloReceita.idUsuarioAlteracao); foreach (var OPagamento in listaPagamentos) { OPagamento.idMeioPagamento = OPagamento.definirMeioPagamento(); OPagamento.idFormaPagamento = OPagamento.definirFormaPagamento(); OPagamento.dtPrevisaoCredito = OPagamento.dtPrevisaoCredito.HasValue? OPagamento.dtPrevisaoCredito: OPagamento.dtCredito; OPagamento.dtCredito = OPagamento.dtCredito; OPagamento.idTituloReceita = OTituloReceita.id; OPagamento.valorOriginal = UtilNumber.toDecimal(OTituloReceita.valorTotal); OPagamento.dtBaixa = DateTime.Now; OPagamento.flagBaixaAutomatica = false; OPagamento.idUsuarioBaixa = OTituloReceita.idUsuarioAlteracao; if (OTituloReceita.dtVencimento.HasValue) { OPagamento.dtVencimento = OTituloReceita.dtVencimento.Value; } OPagamento.setDefaultInsertValues(); this.db.TituloReceitaPagamento.Add(OPagamento); } this.db.SaveChanges(); this.liquidar(OTituloReceita); return(OTituloReceita); }