コード例 #1
0
        /// <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."));
        }
コード例 #2
0
        //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);
        }
コード例 #3
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."));
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        //
        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."));
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        /// <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));
        }
コード例 #9
0
        //Construtor
        public ModalDetalhePagamento()
        {
            this.listaPagamentos = new List <TituloReceitaPagamento>();

            this.listaPagamentosCancelados = new List <TituloReceitaPagamento>();

            this.ParcelaAdicional = new TituloReceitaPagamento();
        }
コード例 #10
0
        //Construtor
        public RegistroPagamentoForm()
        {
            this.AssociadoContribuicao = new AssociadoContribuicao();

            this.TituloReceita = new TituloReceita();

            this.TituloReceitaPagamento = new TituloReceitaPagamento();
        }
コード例 #11
0
        //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."));
        }
コード例 #12
0
        //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);
        }
コード例 #13
0
        /// <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."));
        }
コード例 #14
0
        //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);
        }
コード例 #15
0
        /// <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);
        }
コード例 #16
0
        /// <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);
        }
コード例 #17
0
        /// <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);
        }
コード例 #18
0
        //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));
        }
コード例 #20
0
        //
        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);
        }
コード例 #21
0
        /// <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);
        }
コード例 #22
0
        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));
        }
コード例 #23
0
        //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));
        }
コード例 #24
0
        /// <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);
        }
コード例 #25
0
        //
        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));
        }
コード例 #26
0
        /// <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);
        }
コード例 #27
0
        /// <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);
        }
コード例 #28
0
        /// <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);
        }
コード例 #29
0
        /// <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);
        }
コード例 #30
0
        public BaixaTituloReceitaForm()
        {
            this.TituloReceita = new TituloReceita();

            this.TituloReceitaPagamento = new TituloReceitaPagamento();
        }