/// <summary> /// Registrar o pagamento de uma parcela de um titulo /// Utilizado para a realizacao das baixas manuais /// </summary> public UtilRetorno registrarPagamento(TituloReceitaPagamento OTituloReceitaPagamento) { OTituloReceitaPagamento.idUsuarioBaixa = User.id(); OTituloReceitaPagamento.idUsuarioAlteracao = User.id(); OTituloReceitaPagamento.dtBaixa = DateTime.Now; OTituloReceitaPagamento.idFormaPagamento = OTituloReceitaPagamento.idFormaPagamento > 0? OTituloReceitaPagamento.idFormaPagamento : OTituloReceitaPagamento.definirFormaPagamento(); OTituloReceitaPagamento = this.AntecipacaoConsultaBL.carregarDescontoAntecipacao(OTituloReceitaPagamento); this.PagamentoCadastroBL.atualizarDadosPagamento(OTituloReceitaPagamento); if (OTituloReceitaPagamento.qtdeParcelas > 1 && OTituloReceitaPagamento.idMeioPagamento == MeioPagamentoConst.CARTAO_CREDITO) { this.registrarPagamentoParcelas(OTituloReceitaPagamento); } this.onPagamentoRecebido.subscribe(new OnPagamentoRecebidoHandler()); this.onPagamentoRecebido.publish(OTituloReceitaPagamento as object); return(UtilRetorno.newInstance(false, "O pagamento foi registrado com sucesso.")); }
//Carregamento de registro pelo ID public bool salvarClone(TituloReceitaPagamento TituloReceitaPagamento) { var OTituloReceitaPagamento = new TituloReceitaPagamento(); OTituloReceitaPagamento.idTituloReceita = TituloReceitaPagamento.idTituloReceita; OTituloReceitaPagamento.idStatusPagamento = TituloReceitaPagamento.idStatusPagamento; OTituloReceitaPagamento.idContaBancaria = TituloReceitaPagamento.idContaBancaria; OTituloReceitaPagamento.idMacroConta = TituloReceitaPagamento.idMacroConta; OTituloReceitaPagamento.idCentroCusto = TituloReceitaPagamento.idCentroCusto; OTituloReceitaPagamento.idCategoria = TituloReceitaPagamento.idCategoria; OTituloReceitaPagamento.descricaoParcela = TituloReceitaPagamento.descricaoParcela; OTituloReceitaPagamento.valorOriginal = TituloReceitaPagamento.valorOriginal; OTituloReceitaPagamento.valorDesconto = TituloReceitaPagamento.valorDesconto; OTituloReceitaPagamento.valorJuros = TituloReceitaPagamento.valorJuros; OTituloReceitaPagamento.valorTarifasBancarias = TituloReceitaPagamento.valorTarifasBancarias; OTituloReceitaPagamento.valorTarifasTransacao = TituloReceitaPagamento.valorTarifasTransacao; OTituloReceitaPagamento.valorOutrasTarifas = TituloReceitaPagamento.valorOutrasTarifas; OTituloReceitaPagamento.motivoDesconto = TituloReceitaPagamento.motivoDesconto; OTituloReceitaPagamento.dtVencimento = TituloReceitaPagamento.dtVencimento; OTituloReceitaPagamento.dtVencimentoOriginal = TituloReceitaPagamento.dtVencimento; OTituloReceitaPagamento.dtCompetencia = TituloReceitaPagamento.dtCompetencia; OTituloReceitaPagamento.mesCompetencia = TituloReceitaPagamento.mesCompetencia; OTituloReceitaPagamento.anoCompetencia = TituloReceitaPagamento.anoCompetencia; OTituloReceitaPagamento.setDefaultInsertValues(); db.TituloReceitaPagamento.Add(OTituloReceitaPagamento); db.SaveChanges(); return(OTituloReceitaPagamento.id > 0); }
/// <summary> /// Registrar o pagamento de uma parcela de um titullo /// </summary> public UtilRetorno registrarPagamento(int idTituloReceitaPagamento, DateTime dtPagamentoPrm) { TituloReceitaPagamento OTituloReceitaPagamento = this.carregarDadosPagamento(new TituloReceitaPagamento { id = idTituloReceitaPagamento }); if (OTituloReceitaPagamento == null) { return(UtilRetorno.newInstance(true, "O pagamento informado não pôde ser localizado.")); } if (OTituloReceitaPagamento.dtPagamento.HasValue) { return(UtilRetorno.newInstance(true, "O pagamento informado já está quitado.")); } this.PagamentoCadastroBL.db .TituloReceitaPagamento .Where(x => x.id == idTituloReceitaPagamento && x.dtPagamento == null) .Update(x => new TituloReceitaPagamento { dtPagamento = dtPagamentoPrm, dtBaixa = DateTime.Now, idUsuarioBaixa = User.id(), flagBaixaAutomatica = false, idUsuarioAlteracao = User.id(), valorRecebido = OTituloReceitaPagamento.valorOriginal }); return(UtilRetorno.newInstance(false, "O pagamento foi registrado com sucesso.")); }
/// <summary> /// Altera Data de Competência /// </summary> private UtilRetorno alterarCampoDtCompetencia(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } OItem.mesCompetencia = Convert.ToByte(OItem.dtCompetencia?.Month); OItem.anoCompetencia = Convert.ToInt16(OItem.dtCompetencia?.Year); var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.dtCompetencia.ToString(); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
// public UtilRetorno enviar(TituloReceitaPagamento OPagamento) { Dictionary <string, object> infos = new Dictionary <string, object>(); string urlPagamento = UtilConfig.linkPgtoParcela(OPagamento.id); infos["linkPgto"] = urlPagamento; infos["nomePessoa"] = OPagamento.TituloReceita.nomePessoa; infos["valor"] = OPagamento.valorTotalComDesconto().ToString("C"); infos["valorRecebido"] = OPagamento.valorRecebido.GetValueOrDefault().ToString("C"); infos["dtVencimento"] = OPagamento.dtVencimento.exibirData(); infos["dtPagamento"] = OPagamento.dtPagamento.exibirData(); string descricaoPagamento = OPagamento.TituloReceita.descricao; if (!string.IsNullOrEmpty(OPagamento.descricaoParcela)) { descricaoPagamento = String.Concat(descricaoPagamento, " (", OPagamento.descricaoParcela, ")"); } infos["descricaoPagamento"] = descricaoPagamento; string tituloEmail = $"{OConfiguracaoSistema.tituloSistema} - Pagamento recebido"; return(this.enviar(infos, tituloEmail)); }
//Registrar o pagamento de uma parcela de um titullo public UtilRetorno registrarPagamento(int idTituloReceitaPagamento, DateTime dtPagamento) { TituloReceitaPagamento OTituloReceitaPagamento = db.TituloReceitaPagamento.FirstOrDefault(x => x.id == idTituloReceitaPagamento); if (OTituloReceitaPagamento == null) { return(UtilRetorno.newInstance(true, "O pagamento informado não pôde ser localizado.")); } if (OTituloReceitaPagamento.dtPagamento.HasValue) { return(UtilRetorno.newInstance(true, "O pagamento informado já está quitado.")); } OTituloReceitaPagamento.dtPagamento = dtPagamento; OTituloReceitaPagamento.dtBaixa = DateTime.Now; OTituloReceitaPagamento.idUsuarioBaixa = User.id(); OTituloReceitaPagamento.flagBaixaAutomatica = false; OTituloReceitaPagamento.idUsuarioAlteracao = OTituloReceitaPagamento.idUsuarioBaixa; OTituloReceitaPagamento.valorRecebido = OTituloReceitaPagamento.valorOriginal; db.SaveChanges(); return(UtilRetorno.newInstance(false, "O pagamento foi registrado com sucesso.")); }
/// <summary> /// Carregar id e valor do descnto de antecipacao de acordo com os dado do pagamento /// </summary> public TituloReceitaPagamento carregarDescontoAntecipacao(TituloReceitaPagamento OTituloReceitaPagamento) { var listaDescontos = this.listar(OTituloReceitaPagamento.idTituloReceita) .Select(x => new { x.id, x.idTituloReceita, x.dtLimiteDesconto, x.valor, x.dtExclusao }) .ToListJsonObject <TituloReceitaDescontoAntecipacao>(); var ODescontoAntecipacao = listaDescontos.retornarDescontosAntecipacao(OTituloReceitaPagamento.dtPagamento.GetValueOrDefault()) .FirstOrDefault(); if (ODescontoAntecipacao == null) { return(OTituloReceitaPagamento); } OTituloReceitaPagamento.idDescontoAntecipacao = ODescontoAntecipacao.id; OTituloReceitaPagamento.valorDescontoAntecipacao = ODescontoAntecipacao.valor; return(OTituloReceitaPagamento); }
/// <summary> /// /// </summary> public UtilRetorno atualizarDadosPagamento(TituloReceitaPagamento OPagamento) { var vTarifasBancarias = OPagamento.valorTarifasBancarias; var vTarifasTransacao = OPagamento.valorTarifasTransacao; if (OPagamento.idMeioPagamento == MeioPagamentoConst.DINHEIRO || OPagamento.idMeioPagamento == MeioPagamentoConst.DEPOSITO_BANCARIO || OPagamento.idMeioPagamento == MeioPagamentoConst.TRANSFERENCIA_ELETRONICA) { vTarifasBancarias = 0; vTarifasTransacao = 0; } if (OPagamento.valorRecebido.toDecimal() <= 0) { OPagamento.valorRecebido = OPagamento.valorOriginal; } OPagamento.valorRecebido = decimal.Add(OPagamento.valorRecebido.toDecimal(), OPagamento.valorJuros.toDecimal()); OPagamento.idStatusPagamento = StatusPagamentoConst.PAGO; OPagamento.limparDados(); this.db.TituloReceitaPagamento .Where(x => x.id == OPagamento.id) .Update(x => new TituloReceitaPagamento { valorTarifasTransacao = vTarifasTransacao, valorTarifasBancarias = vTarifasBancarias, valorRecebido = OPagamento.valorRecebido, valorJuros = OPagamento.valorJuros, dtPagamento = OPagamento.dtPagamento, dtPrevisaoCredito = OPagamento.dtPrevisaoCredito ?? x.dtPrevisaoCredito, dtCredito = OPagamento.dtCredito ?? x.dtCredito, idStatusPagamento = OPagamento.idStatusPagamento, idMeioPagamento = OPagamento.idMeioPagamento > 0? OPagamento.idMeioPagamento : x.idMeioPagamento, idFormaPagamento = OPagamento.idFormaPagamento > 0? OPagamento.idFormaPagamento : x.idFormaPagamento, codigoAutorizacao = string.IsNullOrEmpty(OPagamento.codigoAutorizacao)? x.codigoAutorizacao : OPagamento.codigoAutorizacao, tid = string.IsNullOrEmpty(OPagamento.tid)? x.tid : OPagamento.tid, nroBanco = string.IsNullOrEmpty(OPagamento.nroBanco)? x.nroBanco : OPagamento.nroBanco, nroDocumento = string.IsNullOrEmpty(OPagamento.nroDocumento)? x.nroDocumento : OPagamento.nroDocumento, nroAgencia = string.IsNullOrEmpty(OPagamento.nroAgencia)? x.nroAgencia : OPagamento.nroAgencia, nroDigitoAgencia = string.IsNullOrEmpty(OPagamento.nroDigitoAgencia)? x.nroDigitoAgencia : OPagamento.nroDigitoAgencia, nroConta = string.IsNullOrEmpty(OPagamento.nroConta)? x.nroConta : OPagamento.nroConta, nroDigitoConta = string.IsNullOrEmpty(OPagamento.nroDigitoConta)? x.nroDigitoConta : OPagamento.nroDigitoConta, idUsuarioBaixa = OPagamento.idUsuarioBaixa, dtBaixa = OPagamento.dtBaixa, idUsuarioAlteracao = OPagamento.idUsuarioAlteracao, flagBaixaAutomatica = OPagamento.flagBaixaAutomatica, dtExclusao = null }); return(UtilRetorno.newInstance(false)); }
//Construtor public ModalDetalhePagamento() { this.listaPagamentos = new List <TituloReceitaPagamento>(); this.listaPagamentosCancelados = new List <TituloReceitaPagamento>(); this.ParcelaAdicional = new TituloReceitaPagamento(); }
//Construtor public RegistroPagamentoForm() { this.AssociadoContribuicao = new AssociadoContribuicao(); this.TituloReceita = new TituloReceita(); this.TituloReceitaPagamento = new TituloReceitaPagamento(); }
//Atributos //Propriedades //Eventos /// <summary> /// Registrar o pagamento das parcelas adicionais de um titulo, a partir da parcela principal /// </summary> public UtilRetorno registrarPagamento(TituloReceitaPagamento OTituloReceitaPagamento) { var listaParcelas = db.TituloReceitaPagamento.Where(x => x.idParcelaPrincipal == OTituloReceitaPagamento.id).ToList(); if (!listaParcelas.Any()) { return(UtilRetorno.newInstance(true, "Pagamento não localizado no sistema.")); } var qtdeParcelas = OTituloReceitaPagamento.qtdeParcelas.toByte(); var valorRecebidoParcela = decimal.Divide(OTituloReceitaPagamento.valorRecebido.toDecimal(), qtdeParcelas.toDecimal()); foreach (var OParcela in listaParcelas) { db.TituloReceitaPagamento .Where(x => x.id == OParcela.id) .Update(x => new TituloReceitaPagamento { idUsuarioBaixa = OTituloReceitaPagamento.idUsuarioBaixa, idUsuarioAlteracao = OTituloReceitaPagamento.idUsuarioAlteracao, dtBaixa = OTituloReceitaPagamento.dtBaixa, flagBaixaAutomatica = OTituloReceitaPagamento.flagBaixaAutomatica, idStatusPagamento = OTituloReceitaPagamento.idStatusPagamento, dtPagamento = OTituloReceitaPagamento.dtPagamento, valorRecebido = valorRecebidoParcela, codigoAutorizacao = OTituloReceitaPagamento.codigoAutorizacao, tid = OTituloReceitaPagamento.tid }); } //Ajustar o valor recebido da parcela principal db.TituloReceitaPagamento.Where(x => x.id == OTituloReceitaPagamento.id) .Update(x => new TituloReceitaPagamento { valorRecebido = valorRecebidoParcela }); /* var ODescontoAntecipacao = dbPagamento.TituloReceita.retornarDescontosAntecipacao(OTituloReceitaPagamento.dtPagamento.GetValueOrDefault()).FirstOrDefault(); * * if (ODescontoAntecipacao != null){ * * dbPagamento.idDescontoAntecipacao = ODescontoAntecipacao.id; * * dbPagamento.valorDescontoAntecipacao = ODescontoAntecipacao.valor; * * } * * db.SaveChanges(); * * this.onPagamentoRecebido.subscribe(new OnPagamentoRecebidoHandler()); * * this.onPagamentoRecebido.publish( dbPagamento as object);*/ return(UtilRetorno.newInstance(false, "O pagamento foi registrado com sucesso.")); }
//Persistir e inserir um novo registro public TituloReceitaPagamento inserir(TituloReceitaPagamento OTituloReceitaPagamento) { OTituloReceitaPagamento.setDefaultInsertValues(); db.Configuration.AutoDetectChangesEnabled = false; db.Configuration.ValidateOnSaveEnabled = false; db.TituloReceitaPagamento.Add(OTituloReceitaPagamento); db.SaveChanges(); return(OTituloReceitaPagamento); }
/// <summary> /// Procura parcelas vinculadas ao pagamento principal e realiza as baixas /// </summary> public UtilRetorno registrarPagamentoParcelas(TituloReceitaPagamento OTituloReceitaPagamento) { var listaParcelas = this.carregarParcelas(OTituloReceitaPagamento); if (!listaParcelas.Any()) { return(UtilRetorno.newInstance(true, "Não existem parcelas para o título informado.")); } var qtdeParcelas = listaParcelas.Count.toByte(); var valorTotalRecebido = OTituloReceitaPagamento.valorRecebido.toDecimal(); var valorRecebidoParcela = decimal.Divide(valorTotalRecebido, qtdeParcelas.toDecimal()); foreach (var OParcela in listaParcelas) { OParcela.idUsuarioBaixa = OTituloReceitaPagamento.idUsuarioBaixa; OParcela.idUsuarioAlteracao = OTituloReceitaPagamento.idUsuarioAlteracao; OParcela.dtBaixa = OTituloReceitaPagamento.dtBaixa; OParcela.flagBaixaAutomatica = OTituloReceitaPagamento.flagBaixaAutomatica; OParcela.idStatusPagamento = OTituloReceitaPagamento.idStatusPagamento; OParcela.dtPagamento = OTituloReceitaPagamento.dtPagamento; OParcela.valorRecebido = OParcela.valorRecebido; OParcela.codigoAutorizacao = OTituloReceitaPagamento.codigoAutorizacao; OParcela.tid = OTituloReceitaPagamento.tid; this.PagamentoCadastroBL.atualizarDadosPagamento(OParcela); } //Ajustar o valor recebido da parcela principal que inicialmente recebe o valor cheio do recebimento this.PagamentoCadastroBL.db .TituloReceitaPagamento.Where(x => x.id == OTituloReceitaPagamento.id) .Update(x => new TituloReceitaPagamento { valorRecebido = valorRecebidoParcela }); return(UtilRetorno.newInstance(false, "O pagamento foi registrado com sucesso.")); }
//Persistir e inserir um novo registro private TituloReceitaPagamento inserir(TituloReceitaPagamento OTituloReceitaPagamento) { OTituloReceitaPagamento.setDefaultInsertValues(); using (var dataContext = new DataContext()) { dataContext.Configuration.AutoDetectChangesEnabled = false; dataContext.Configuration.ValidateOnSaveEnabled = false; dataContext.TituloReceitaPagamento.Add(OTituloReceitaPagamento); dataContext.SaveChanges(); } return(OTituloReceitaPagamento); }
/// <summary> /// /// </summary> private TituloReceitaPagamento carregarDadosPagamento(TituloReceitaPagamento OTituloReceitaPagamento) { var dbPagamento = PagamentoConsultaBL.query(0) .Where(x => x.id == OTituloReceitaPagamento.id) .Select(x => new { x.id, x.idTituloReceita, x.dtPrevisaoCredito, x.valorOriginal, x.idUsuarioBaixa }) .FirstOrDefault() .ToJsonObject <TituloReceitaPagamento>(); return(dbPagamento); }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloReceitaPagamento OTituloReceitaPagamento, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); // var listaCamposEditaveis = new[] { // "descricao", "idContaBancaria", "idCentroCusto", "idMacroConta", "idCategoria", // "nroNotaFiscal", "nroContrato", "codigoBoleto", "idModoPagamento", "idContaBancariaFavorecida", // "documentoPessoaCredor","nomePessoaCredor","nroTelPrincipalCredor" // }; // // if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { // // return UtilRetorno.newInstance(true, "O dado informado não pode ser alterado."); // } OLog.valorAntigo = OTituloReceitaPagamento.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var Retorno = db.validateAndSave(); if (Retorno.flagError) { return(Retorno); } OLog.nomeCampoAlterado = OLog.nomeCampoAlterado.abreviar(255); OLog.nomeCampoDisplay = OLog.nomeCampoDisplay.abreviar(255); OLog.valorNovo = OTituloReceitaPagamento.getValorCampo(OLog.nomeCampoAlterado).removeTags().abreviar(255); OLog.valorAntigo = OLog.valorAntigo.removeTags().abreviar(255); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect.removeTags().abreviar(255); OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); }
/// <summary> /// Enviar e-mail de confirmação do recebimento do valor /// </summary> private void enviarEmail(TituloReceitaPagamento OPagamento) { var listaEmails = new List <string>(); listaEmails.Add(OPagamento.TituloReceita.emailPrincipal); listaEmails = listaEmails.Where(UtilValidation.isEmail).ToList(); if (!listaEmails.Any()) { return; } var Mensageiro = EnvioPagamentoRecusado.factory(OPagamento.idOrganizacao, listaEmails, null); Mensageiro.enviar(OPagamento); }
//Persistir e atualizar um registro existente private TituloReceitaPagamento atualizar(TituloReceitaPagamento OTituloReceitaPagamento) { //Localizar existentes no banco //Nao aplicado condicoes de seguranca pois a atualização é usada no checkout TituloReceitaPagamento dbPagamento = this.db.TituloReceitaPagamento.Find(OTituloReceitaPagamento.id); //Configurar valores padrão OTituloReceitaPagamento.setDefaultUpdateValues(); //Atualizacao do pagamento var PagamentoEntry = db.Entry(dbPagamento); PagamentoEntry.CurrentValues.SetValues(OTituloReceitaPagamento); PagamentoEntry.ignoreFields(); db.SaveChanges(); return(OTituloReceitaPagamento); }
//Propriedades //Events /// <summary> /// Gerar boleto bancario para uma contribuicao /// </summary> public UtilRetorno gerarPagamentoBoleto(AssociadoContribuicao OAssociadoContribuicao) { var OTituloReceita = OTituloReceitaBL.carregarPorReceita(OAssociadoContribuicao.id); if (OTituloReceita == null) { var RetornoGerador = this.OTituloReceitaGeradorBL.gerar(OAssociadoContribuicao as object); OTituloReceita = RetornoGerador.info as TituloReceita; } string nroDocumento = OTituloReceita.documentoRecibo; string cep = OTituloReceita.cepRecibo; if (!UtilValidation.isCPF(nroDocumento) && !UtilValidation.isCNPJ(nroDocumento)) { return(UtilRetorno.newInstance(true, $"O documento do associado é inválido para geração de boleto bancário: {nroDocumento}")); } if (!UtilValidation.isCEP(cep)) { return(UtilRetorno.newInstance(true, $"O CEP do sacado informado é inválido para geração de boleto bancário: {cep}")); } var OPagamento = new TituloReceitaPagamento(); OPagamento.transferirDadosTitulo(OTituloReceita); OPagamento.idMeioPagamento = MeioPagamentoConst.BOLETO_BANCARIO; OPagamento.idFormaPagamento = FormaPagamentoConst.BOLETO_BANCARIO; OPagamento.idStatusPagamento = StatusPagamentoConst.AGUARDANDO_PAGAMENTO; OTituloReceitaPagamentoBL.salvar(OPagamento); //Essas atribuicoes sao feitas pois apos a geracao do registro é enviado para geracao de boletos e os objetos abaixo serao necessarios, assim economiza-se uma nova ida ao banco de dados OPagamento.TituloReceita = OTituloReceita; return(UtilRetorno.newInstance(false, "Os dados para geração do boleto foram configurados com sucesso.", OPagamento)); }
// private void gerarPagamento(TituloReceita OTituloReceita) { var OPagamento = new TituloReceitaPagamento(); OPagamento.transferirDadosTitulo(OTituloReceita); OPagamento.idMeioPagamento = MeioPagamentoConst.TRANSFERENCIA_ELETRONICA; OPagamento.idFormaPagamento = FormaPagamentoConst.TRANSFERENCIA_BANCARIA; OPagamento.idStatusPagamento = StatusPagamentoConst.PAGO; OPagamento.dtPagamento = OTituloReceita.dtQuitacao; OPagamento.dtCredito = OTituloReceita.dtQuitacao; OPagamento.valorRecebido = OTituloReceita.valorTotal; OTituloReceitaPagamentoBL.salvar(OPagamento); }
/// <summary> /// /// </summary> private List <TituloReceitaPagamento> carregarParcelas(TituloReceitaPagamento OTituloReceitaPagamento) { var listaParcelas = PagamentoConsultaBL.query(0) .Where(x => x.idParcelaPrincipal == OTituloReceitaPagamento.id && x.tokenTransacao == OTituloReceitaPagamento.tokenTransacao ) .Select(x => new { x.id, x.idTituloReceita, x.dtPrevisaoCredito, x.valorOriginal, x.valorTarifasBancarias, x.valorTarifasTransacao, x.valorJuros, x.idUsuarioBaixa }) .ToListJsonObject <TituloReceitaPagamento>(); return(listaParcelas); }
public ActionResult partialCarregarParcelas(int idPedido, int?qtdeParcelas) { if (UtilNumber.toInt32(qtdeParcelas) == 0) { return(Json(new { error = true, message = "Informe uma quantidade de parcelas maior do que zero." })); } var ViewModel = new PedidoPagamentoVM(); ViewModel.Pedido = this.OPedidoBL.carregar(idPedido); decimal valorParcela = Decimal.Divide(ViewModel.Pedido.getValorTotal(), UtilNumber.toInt32(qtdeParcelas)); decimal valorTotalParcelas = 0; decimal valorTotalPedido = ViewModel.Pedido.getValorTotal(); for (int i = 0; i < qtdeParcelas; i++) { var OParcela = new TituloReceitaPagamento(); OParcela.valorOriginal = Math.Round(valorParcela, 2); OParcela.dtVencimento = DateTime.Today.AddDays(1).AddMonths(i); ViewModel.listaPagamentos.Add(OParcela); valorTotalParcelas = Math.Round(decimal.Add(valorTotalParcelas, valorParcela), 2); } decimal valorDiferenca = Decimal.Subtract(valorTotalPedido, valorTotalParcelas); var OParcelaUltima = ViewModel.listaPagamentos.LastOrDefault(); OParcelaUltima.valorOriginal = Decimal.Add(OParcelaUltima.valorOriginal, valorDiferenca); ViewModel.flagTemPagamento = false; return(PartialView("partial-dados-pagamento", ViewModel)); }
//Definir se é um insert ou update e enviar o registro para o banco de dados public TituloReceitaPagamento salvar(TituloReceitaPagamento OTituloReceitaPagamento) { OTituloReceitaPagamento.TituloReceita = null; OTituloReceitaPagamento.MeioPagamento = null; OTituloReceitaPagamento.FormaPagamento = null; OTituloReceitaPagamento.Categoria = null; OTituloReceitaPagamento.CentroCusto = null; OTituloReceitaPagamento.MacroConta = null; OTituloReceitaPagamento.ContaBancaria = null; OTituloReceitaPagamento.CidadeRecibo = null; OTituloReceitaPagamento.CupomDesconto = null; OTituloReceitaPagamento.GatewayPagamento = null; OTituloReceitaPagamento.Organizacao = null; OTituloReceitaPagamento.StatusPagamento = null; OTituloReceitaPagamento.UsuarioBaixa = null; OTituloReceitaPagamento.UsuarioExclusao = null; OTituloReceitaPagamento.ativo = true; if (OTituloReceitaPagamento.id == 0) { return(this.inserir(OTituloReceitaPagamento)); } return(this.atualizar(OTituloReceitaPagamento)); }
/// <summary> /// Gera o Titulo despesa pagamentos para despesas de parcela única /// </summary> public void gerarPagamento() { if (this.flagTipoRepeticao == TipoRepeticaoConst.PARCELAMENTO) { if (this.flagValorTotalParcelamento != "S") { this.TituloReceita.valorTotal = this.TituloReceita.listaTituloReceitaPagamento.Sum(x => x.valorOriginal); } return; } this.TituloReceita.qtdeRepeticao = 1; this.TituloReceita.listaTituloReceitaPagamento = new List <TituloReceitaPagamento>(); var OTituloReceitaPagamento = new TituloReceitaPagamento(); OTituloReceitaPagamento.dtVencimento = this.TituloReceita.dtVencimento.Value; OTituloReceitaPagamento.valorOriginal = UtilNumber.toDecimal(this.TituloReceita.valorTotal); OTituloReceitaPagamento.dtPrevisaoPagamento = this.dtPrevisaoPagamento ?? this.TituloReceita.dtVencimento; this.TituloReceita.listaTituloReceitaPagamento.Add(OTituloReceitaPagamento); }
// public UtilRetorno enviar(TituloReceitaPagamento OPagamento) { Dictionary <string, object> infos = new Dictionary <string, object>(); string urlPagamento = String.Format(UtilConfig.linkPgto, UtilString.encodeURL(UtilCrypt.toBase64Encode(OPagamento.id))); infos["linkPgto"] = urlPagamento; infos["nomePessoa"] = OPagamento.TituloReceita.nomePessoa; string descricaoPagamento = OPagamento.TituloReceita.descricao; if (!string.IsNullOrEmpty(OPagamento.descricaoParcela)) { descricaoPagamento = String.Concat(descricaoPagamento, " (", OPagamento.descricaoParcela, ")"); } infos["descricaoPagamento"] = descricaoPagamento; string tituloEmail = $"{OConfiguracaoSistema.tituloSistema} - {OPagamento.TituloReceita.descricao}"; return(this.enviar(infos, tituloEmail)); }
/// <summary> /// Altera o valor pago do pagamento /// </summary> private UtilRetorno alterarCampoValorRecebido(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.valorRecebido.ToString(); if (OItem.dtPagamento == null) { ORetorno.listaErros.Add("Não é possível alterar o valor pago de uma parcela sem pagamento registrado"); return(ORetorno); } var valorRecebido = UtilNumber.toDecimal(OLog.valorNovo); if (valorRecebido == 0) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } OItem.valorRecebido = valorRecebido; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.valorRecebido.ToString(); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <summary> /// Altera o valor original do pagamento /// </summary> private UtilRetorno alterarCampoValorOriginal(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.valorOriginal.ToString(); var valorOrginal = UtilNumber.toDecimal(OLog.valorNovo); if (valorOrginal == 0) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } if (valorOrginal < OItem.valorTotalTarifas()) { ORetorno.listaErros.Add("O valor informado é menor que o total de tarifas"); return(ORetorno); } OItem.valorOriginal = valorOrginal; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.valorOriginal.ToString(); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <summary> /// Altera o nroDocumento do pagamento /// </summary> private UtilRetorno alterarCampoNroDocumento(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.nroDocumento; var nroDocumento = UtilString.onlyAlphaNumber(OLog.valorNovo); OItem.nroDocumento = nroDocumento; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.nroDocumento; OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposEditaveis = new[] { "idContaBancaria", "idCentroCusto", "idMacroConta", "idCategoria", "idMeioPagamento", "dtVencimento", "dtPrevisaoCredito", "valorOutrasTarifas", "descricaoParcela" }; if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "Campo informado não pode ser editado")); } OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.getValorCampo(OLog.nomeCampoAlterado); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
public BaixaTituloReceitaForm() { this.TituloReceita = new TituloReceita(); this.TituloReceitaPagamento = new TituloReceitaPagamento(); }