//retornar texto de acordo com a situacao atuacao
        public static string detalheParcelamento(this AssociadoContribuicao OContribuicao)
        {
            if (OContribuicao == null)
            {
                return("-");
            }

            if (OContribuicao.TituloReceita == null)
            {
                return("-");
            }

            var listaParcelas = OContribuicao.TituloReceita.listaTituloReceitaPagamento.Where(x => x.dtExclusao == null).ToList();

            if (!listaParcelas.Any())
            {
                return("-");
            }

            int qtdePagas = listaParcelas.Count(x => x.dtPagamento != null);

            string detalhes = $"Pago <strong>{qtdePagas}</strong> de <strong>{listaParcelas.Count}</strong>";

            decimal?valorPago = listaParcelas.Where(x => x.dtPagamento != null).Sum(x => x.valorRecebido);

            decimal saldo = decimal.Subtract(UtilNumber.toDecimal(OContribuicao.valorAtual), UtilNumber.toDecimal(valorPago));

            if (saldo > 0)
            {
                detalhes = string.Concat(detalhes, " <span class='fs-10 text-italic'>Saldo: ", saldo.ToString("C"), "</span>");
            }

            return(detalhes);
        }
        /// <summary>
        /// Altera o valor original do pagamento
        /// </summary>
        private UtilRetorno alterarCampoValorOriginal(TituloDespesaPagamento 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);
            }

            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>
        ///Vincular uma contribuicao com o associado dependente
        ///Pode-se informar qual contribuição será vinculada
        /// </summary>
        public UtilRetorno gerarCobrancaDependente(Associado OAssociado, AssociadoContribuicao OAssociadoContribuicao)
        {
            if (OAssociado?.TipoAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O tipo do associado dependente informado não foi informado."));
            }

            var OContribuicao = OAssociadoContribuicao.Contribuicao;

            if (OContribuicao == null)
            {
                OContribuicao = this.OContribuicaoBL.carregar(OAssociadoContribuicao.idContribuicao);
            }

            int?idContribuicao = OContribuicao.id;


            var TabelaPreco = OContribuicao.retornarTabelaVigente();

            if (TabelaPreco == null)
            {
                return(UtilRetorno.newInstance(true, "Não há tabela de preços configuradas para a contribuição."));
            }

            var Preco = TabelaPreco.retornarPreco(UtilNumber.toInt32(OAssociado.idTipoAssociado));

            AssociadoContribuicao ODependenteContribuicao = new AssociadoContribuicao();

            this.verificarIsencao(ref ODependenteContribuicao, Preco, OAssociado);

            ODependenteContribuicao.idAssociado = OAssociado.id;

            ODependenteContribuicao.idOrganizacao = OAssociadoContribuicao.idOrganizacao;

            ODependenteContribuicao.idUnidade = OAssociadoContribuicao.idUnidade;

            ODependenteContribuicao.idTipoAssociado = UtilNumber.toInt32(OAssociado.idTipoAssociado);

            ODependenteContribuicao.idContribuicao = idContribuicao.toInt();

            ODependenteContribuicao.valorOriginal = UtilNumber.toDecimal(Preco.valorFinal);

            ODependenteContribuicao.valorAtual = ODependenteContribuicao.valorOriginal;

            ODependenteContribuicao.dtVencimentoOriginal = OAssociadoContribuicao.dtVencimentoOriginal;

            ODependenteContribuicao.dtVencimentoAtual = ODependenteContribuicao.dtVencimentoOriginal;

            ODependenteContribuicao.idContribuicaoVencimento = OAssociadoContribuicao.idContribuicaoVencimento;

            ODependenteContribuicao.dtInicioVigencia = OAssociadoContribuicao.dtInicioVigencia;

            ODependenteContribuicao.dtFimVigencia = OAssociadoContribuicao.dtFimVigencia;

            ODependenteContribuicao.idAssociadoContribuicaoPrincipal = OAssociadoContribuicao.id;

            ODependenteContribuicao.Associado = OAssociado;

            return(this.gerarCobranca(ODependenteContribuicao));
        }
Ejemplo n.º 4
0
        //Buscar informacao de CEP para cálculo
        public async Task <List <CorreiosFreteRetorno> > buscar(string cepOrigem, string cepDestino, decimal peso, decimal comprimento, decimal altura, decimal largura)
        {
            cepDestino = UtilString.onlyNumber(cepDestino);

            List <CorreiosFreteRetorno> listaRetorno = new List <CorreiosFreteRetorno>();

            if (peso > 0)
            {
                var listaFretes = this.OCorreiosBL.calcularPrecoPrazo(cepOrigem, cepDestino, peso, comprimento, altura, largura);

                listaRetorno = new List <CorreiosFreteRetorno>();

                foreach (var DadosFrete in listaFretes)
                {
                    var ItemRetorno = new CorreiosFreteRetorno();

                    foreach (var Item in DadosFrete.Servicos)
                    {
                        ItemRetorno.valorEntrega  = UtilNumber.toDecimal(Item.Valor);
                        ItemRetorno.prazoEntrega  = Item.PrazoEntrega;
                        ItemRetorno.codigoServico = Item.Codigo;

                        listaRetorno.Add(ItemRetorno);
                    }
                }
            }

            CepBrasil OCep = await this.OCepBrasilBL.buscarEndereco(cepDestino);

            if (OCep.id > 0)
            {
                if (listaRetorno.Count == 0)
                {
                    listaRetorno = new List <CorreiosFreteRetorno>()
                    {
                        new CorreiosFreteRetorno()
                    };
                }

                listaRetorno.ForEach(Item => {
                    Item.cepOriginal = OCep.cepOriginal;

                    Item.bairro = OCep.bairroIni;

                    Item.idCidade = OCep.idCidade;

                    Item.nomeCidade = OCep.nomeCidade;

                    Item.idEstado = OCep.idEstado;

                    Item.siglaEstado = OCep.siglaEstado;

                    Item.tipoLogradouro = OCep.tipoLogradouro;

                    Item.logradouro = OCep.logradouro;
                });
            }

            return(listaRetorno);
        }
        //Calcular valor total das tarifas
        public static decimal valorTotalTarifas(this ReceitaDespesaVW OPagamento)
        {
            decimal valorTotal = new decimal(0);

            if (OPagamento == null)
            {
                return(valorTotal);
            }

            if (OPagamento.valorTarifasBancarias > 0)
            {
                valorTotal = Decimal.Add(valorTotal, UtilNumber.toDecimal(OPagamento.valorTarifasBancarias));
            }

            if (OPagamento.valorTarifasTransacao > 0)
            {
                valorTotal = Decimal.Add(valorTotal, UtilNumber.toDecimal(OPagamento.valorTarifasTransacao));
            }

            if (OPagamento.valorOutrasTarifas > 0)
            {
                valorTotal = Decimal.Add(valorTotal, UtilNumber.toDecimal(OPagamento.valorOutrasTarifas));
            }

            return(valorTotal);
        }
Ejemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        public static TituloDespesaPagamento transferirDadosTitulo(this TituloDespesaPagamento OPagamento, TituloDespesa OTitulo)
        {
            OPagamento.idTituloDespesa = OTitulo.id;

            OPagamento.idOrganizacao = OTitulo.idOrganizacao;

            OPagamento.valorOriginal = UtilNumber.toDecimal(OTitulo.valorTotal);

            OPagamento.dtVencimento = OTitulo.dtVencimento;

            if (OPagamento.dtVencimento.HasValue)
            {
                OPagamento.dtCompetencia = OPagamento.dtVencimento;

                OPagamento.mesCompetencia = (byte?)OPagamento.dtVencimento.Value.Month;

                OPagamento.anoCompetencia = (short)OPagamento.dtVencimento.Value.Year;
            }

            OPagamento.idCentroCusto = OTitulo.idCentroCusto;

            OPagamento.idMacroConta = OTitulo.idMacroConta;

            OPagamento.idCategoria = OTitulo.idCategoria;

            OPagamento.idContaBancaria = OTitulo.idContaBancaria;

            return(OPagamento);
        }
Ejemplo n.º 7
0
        //
        public static decimal valorDesconto(this TituloReceita OTitulo)
        {
            var valorOutrasTarifas    = OTitulo.listaTituloReceitaPagamento.Sum(x => x.valorOutrasTarifas);
            var valorTarifasBancarias = OTitulo.listaTituloReceitaPagamento.Sum(x => x.valorTarifasBancarias);
            var valorTarifasTransacao = OTitulo.listaTituloReceitaPagamento.Sum(x => x.valorTarifasTransacao);

            decimal valorDesconto = Decimal.Add(UtilNumber.toDecimal(valorTarifasTransacao), Decimal.Add(UtilNumber.toDecimal(valorOutrasTarifas), UtilNumber.toDecimal(valorTarifasBancarias)));

            return(valorDesconto);
        }
        /// <summary>
        /// Transferir as configuracoes do checkout para o registro de pagamento
        /// </summary>
        public static TituloReceitaPagamento transferirDadosTitulo(this TituloReceitaPagamento OPagamento, TituloReceita OTitulo)
        {
            OPagamento.idTituloReceita = OTitulo.id;

            OPagamento.idOrganizacao = OTitulo.idOrganizacao;

            OPagamento.valorOriginal = UtilNumber.toDecimal(OTitulo.valorTotal);

            OPagamento.dtVencimentoOriginal = OTitulo.dtVencimento;

            OPagamento.dtVencimento = OPagamento.dtVencimentoOriginal;

            if (OPagamento.dtVencimentoOriginal.HasValue)
            {
                OPagamento.dtCompetencia = OPagamento.dtVencimentoOriginal;

                OPagamento.mesCompetencia = (byte?)OPagamento.dtVencimentoOriginal.Value.Month;

                OPagamento.anoCompetencia = (short)OPagamento.dtVencimentoOriginal.Value.Year;
            }

            OPagamento.idCentroCusto = OTitulo.idCentroCusto;

            OPagamento.idMacroConta = OTitulo.idMacroConta;

            OPagamento.idCategoria = OTitulo.idCategoria;

            OPagamento.idContaBancaria = OTitulo.idContaBancaria;

            OPagamento.nomeRecibo = OTitulo.nomeRecibo;

            OPagamento.documentoRecibo = OTitulo.documentoRecibo;

            OPagamento.cepRecibo = OTitulo.cepRecibo;

            OPagamento.logradouroRecibo = OTitulo.logradouroRecibo;

            OPagamento.numeroRecibo = OTitulo.numeroRecibo;

            OPagamento.complementoRecibo = OTitulo.complementoRecibo;

            OPagamento.bairroRecibo = OTitulo.bairroRecibo;

            OPagamento.idCidadeRecibo = OTitulo.idCidadeRecibo;

            OPagamento.nomeCidadeRecibo = OTitulo.nomeCidadeRecibo;

            OPagamento.telPrincipal = OTitulo.nroTelPrincipal;

            OPagamento.telSecundario = OTitulo.nroTelSecundario;

            OPagamento.email = OTitulo.emailPrincipal;

            return(OPagamento);
        }
Ejemplo n.º 9
0
        //
        public decimal getValorTotal()
        {
            decimal vlFrete    = this.valorFrete ?? 0;
            decimal valorTotal = Decimal.Add(this.valorProdutos, vlFrete);

            valorTotal = Decimal.Subtract(valorTotal, UtilNumber.toDecimal(this.valorDesconto));

            valorTotal = valorTotal > 0 ? valorTotal : 0;

            return(valorTotal);
        }
        //
        public void carregarDados(TituloReceita OTitulo)
        {
            this.TituloReceita = OTitulo;

            this.listaPagamentos = OTitulo.listaTituloReceitaPagamento.Where(x => x.dtExclusao == null).OrderBy(x => x.dtVencimento).ToList();

            this.listaPagamentosCancelados = OTitulo.listaTituloReceitaPagamento.Where(x => x.dtExclusao != null).OrderByDescending(x => x.id).ToList();

            this.valorParcelado = this.listaPagamentos.Sum(x => x.valorOriginal);

            this.valorDiferencaParcelas = Decimal.Subtract(UtilNumber.toDecimal(OTitulo.valorTotal), this.valorParcelado);
        }
        //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);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Gera o Titulo despesa pagamentos para despesas de parcela única
        /// </summary>
        public void gerarPagamento()
        {
            if (this.flagTipoRepeticao == TipoRepeticaoConst.PARCELAMENTO)
            {
                this.TituloDespesa.listaTituloDespesaPagamento = this.TituloDespesa.listaTituloDespesaPagamento.OrderBy(x => x.dtVencimento).ToList();

                this.TituloDespesa.valorMulta    = this.TituloDespesa.listaTituloDespesaPagamento.Sum(x => x.valorMulta);
                this.TituloDespesa.valorJuros    = this.TituloDespesa.listaTituloDespesaPagamento.Sum(x => x.valorJuros);
                this.TituloDespesa.valorDesconto = this.TituloDespesa.listaTituloDespesaPagamento.Sum(x => x.valorDesconto);

                if (this.flagValorTotalParcelamento != "S")
                {
                    this.TituloDespesa.valorTotal = this.TituloDespesa.listaTituloDespesaPagamento.Sum(x => x.valorOriginal);
                }
                return;
            }

            this.TituloDespesa.qtdeRepeticao = 1;

            this.TituloDespesa.listaTituloDespesaPagamento = new List <TituloDespesaPagamento>();

            var OTituloDespesaPagamento = new TituloDespesaPagamento();

            OTituloDespesaPagamento.dtVencimento = this.TituloDespesa.dtVencimento.Value;

            OTituloDespesaPagamento.nroNotaFiscal = this.TituloDespesa.nroNotaFiscal;
            OTituloDespesaPagamento.nroDocumento  = this.TituloDespesa.nroDocumento;
            OTituloDespesaPagamento.nroContrato   = this.TituloDespesa.nroContrato;

            OTituloDespesaPagamento.valorOriginal = UtilNumber.toDecimal(this.TituloDespesa.valorTotal);
            OTituloDespesaPagamento.flagReembolso = this.flagReembolso;
            OTituloDespesaPagamento.dtDebito      = this.dtDebito ?? OTituloDespesaPagamento.dtVencimento;

            if (this.TituloDespesa.dtQuitacao.HasValue)
            {
                OTituloDespesaPagamento.dtPagamento       = this.TituloDespesa.dtQuitacao;
                OTituloDespesaPagamento.idMeioPagamento   = this.idMeioPagamento;
                OTituloDespesaPagamento.valorPago         = OTituloDespesaPagamento.valorOriginal;
                OTituloDespesaPagamento.idUsuarioCadastro = HttpContextFactory.Current.User.id();
                OTituloDespesaPagamento.dtBaixa           = DateTime.Now;
                OTituloDespesaPagamento.flagPago          = "S";
            }

            this.TituloDespesa.listaTituloDespesaPagamento.Add(OTituloDespesaPagamento);
        }
        //Extension para pegar o preço a partir do tipo do associado
        //Verificar se a cobranca deve ser feita pro-rata e calcular o valor
        public static ContribuicaoPreco retornarPrecoAtual(this ContribuicaoTabelaPreco TabelaPreco, int idTipoAssociado, DateTime?dtCobranca)
        {
            var Preco = new ContribuicaoPreco();

            if (TabelaPreco == null)
            {
                return(Preco);
            }

            Preco = TabelaPreco.listaPrecos.FirstOrDefault(x => x.idTipoAssociado == idTipoAssociado && x.flagExcluido == "N");

            Preco = Preco ?? new ContribuicaoPreco();

            var OContribuicao = TabelaPreco.Contribuicao;

            var flagCobrancaProRata = OContribuicao.flagCobrancaProRata == true;

            var OVencimento = OContribuicao.retornarProximoVencimento();

            var dtFimVigencia = OVencimento.dtFimVigencia;

            if (!dtFimVigencia.HasValue || !dtCobranca.HasValue)
            {
                return(Preco);
            }

            if (!flagCobrancaProRata || OContribuicao.idTipoVencimento != TipoVencimentoConst.FIXO_PELA_CONTRIBUICAO && Preco.id == 0)
            {
                return(Preco);
            }

            int qtdeDiasRestante = dtFimVigencia.Value.Date.Subtract(dtCobranca.Value.Date).Days;

            int qtdeDiasTotal = OContribuicao.PeriodoContribuicao.qtdeDias;

            decimal valorPorDia = decimal.Divide(UtilNumber.toDecimal(Preco.valorFinal), UtilNumber.toDecimal(qtdeDiasTotal));

            decimal valorProRata = decimal.Multiply(valorPorDia, UtilNumber.toDecimal(qtdeDiasRestante));

            Preco.valorFinal = valorProRata;

            return(Preco);
        }
Ejemplo n.º 14
0
        public decimal getValor()
        {
            DateTime hoje = DateTime.Today;

            if (hoje <= this.dtVencimento1 && this.vlParcela1 > 0)
            {
                return(UtilNumber.toDecimal(this.vlParcela1.ToString()));
            }

            if (hoje <= this.dtVencimento2 && this.vlParcela2 > 0)
            {
                return(UtilNumber.toDecimal(this.vlParcela2.ToString()));
            }

            if (hoje <= this.dtVencimento3 && this.vlParcela3 > 0)
            {
                return(UtilNumber.toDecimal(this.vlParcela3.ToString()));
            }
            return(this.valorFinal);
        }
Ejemplo n.º 15
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);
        }
Ejemplo n.º 16
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);
        }
Ejemplo n.º 17
0
        public static decimal valorLiquido(this TituloDespesaPagamentoResumoVW OTitulo)
        {
            decimal valorLiquido = Decimal.Subtract(UtilNumber.toDecimal(OTitulo.valorOriginal), UtilNumber.toDecimal(OTitulo.valorTotalTarifas()));

            return(valorLiquido);
        }
        /// <summary>
        ///Vincular uma contribuicao com o associado
        ///Pode-se informar qual contribuição será vinculada
        ///Se nao for informada nenhuma contribuicao, o sistema irá considerar a contribuicao padrao do associado
        /// </summary>
        public UtilRetorno gerarCobranca(Associado OAssociado, Contribuicao OContribuicao, DateTime?dtVencimento = null, DateTime?dtNovoVencimento = null, bool flagPrimeiraCobranca = false, decimal valorCustomizado = 0)
        {
            if (OAssociado?.TipoAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O associado informado não foi localizado."));
            }

            int?idContribuicao = OContribuicao?.id;

            if (idContribuicao.toInt() == 0)
            {
            }

            if (OContribuicao == null || !OContribuicao.listaContribuicaoVencimento.Any())
            {
                OContribuicao = this.OContribuicaoBL.carregar(idContribuicao.toInt());
            }

            if (OContribuicao == null)
            {
                return(UtilRetorno.newInstance(true, "A contribuição informada não foi localizada."));
            }

            var TabelaPreco = OContribuicao.retornarTabelaVigente();

            if (TabelaPreco.id == 0)
            {
                return(UtilRetorno.newInstance(true, "Não há tabela de preços configuradas para a contribuição."));
            }

            var Vencimento = OContribuicao.retornarProximoVencimento(dtVencimento);

            var Preco = flagPrimeiraCobranca ? TabelaPreco.retornarPrecoAtual(UtilNumber.toInt32(OAssociado.idTipoAssociado), DateTime.Today) : TabelaPreco.retornarPreco(UtilNumber.toInt32(OAssociado.idTipoAssociado));

            if (!dtVencimento.HasValue)
            {
                dtVencimento = Vencimento.dtVencimento;
            }

            if (flagPrimeiraCobranca)
            {
                dtNovoVencimento = DateTime.Today.AddDays(UtilNumber.toInt32(OAssociado.TipoAssociado.diasPrazoPrimeiraCobranca));

                //Caso o vencimento seja por admissão ou por ultimo pagamento, enviamos a data de vencimento vazia no ato do cadastro.
                //Por este motivo atualizamos a competência com base na data de hoje.
                if (OContribuicao.flagVencimentoVariado() && !Vencimento.dtVencimento.HasValue)
                {
                    dtVencimento = DateTime.Today;

                    Vencimento.dtVencimento = dtNovoVencimento;

                    Vencimento.dtInicioVigencia = dtNovoVencimento;

                    Vencimento.dtFimVigencia = dtNovoVencimento.Value.AddYears(1);
                }
            }

            if (!dtVencimento.HasValue)
            {
                return(UtilRetorno.newInstance(true, "O vencimento não está configurado ou não foi informado para essa contribuição."));
            }

            bool flagVencimentoValido = this.validarVencimento(OContribuicao, dtVencimento.Value);

            if (!flagVencimentoValido)
            {
                return(UtilRetorno.newInstance(true, "O vencimento informado não está dentro das opções válidas para a cobrança informada."));
            }

            AssociadoContribuicao OAssociadoContribuicao = new AssociadoContribuicao();

            this.verificarIsencao(ref OAssociadoContribuicao, Preco, OAssociado);

            OAssociadoContribuicao.idAssociado = OAssociado.id;

            OAssociadoContribuicao.idOrganizacao = OAssociado.idOrganizacao;

            OAssociadoContribuicao.idUnidade = OAssociado.idUnidade;

            OAssociadoContribuicao.idTipoAssociado = UtilNumber.toInt32(OAssociado.idTipoAssociado);

            OAssociadoContribuicao.idContribuicao = idContribuicao.toInt();

            OAssociadoContribuicao.valorOriginal = UtilNumber.toDecimal(Preco.valorFinal);

            OAssociadoContribuicao.valorAtual = valorCustomizado > 0? valorCustomizado : OAssociadoContribuicao.valorOriginal;

            OAssociadoContribuicao.dtVencimentoOriginal = dtVencimento.Value;

            OAssociadoContribuicao.dtVencimentoAtual = dtNovoVencimento ?? OAssociadoContribuicao.dtVencimentoOriginal;

            OAssociadoContribuicao.idContribuicaoVencimento = Vencimento.id;

            OAssociadoContribuicao.dtInicioVigencia = Vencimento.dtInicioVigencia;

            OAssociadoContribuicao.dtFimVigencia = Vencimento.dtFimVigencia;

            return(this.gerarCobranca(OAssociadoContribuicao));
        }
        public ActionResult importarDespesaAtualizar(HttpPostedFileBase arquivoExcel)
        {
            var lista = new List <ImportacaoFinanceiroDTO>();

            string extensao            = UTIL.Upload.UploadConfig.getExtension(arquivoExcel);
            string pathExcelTemporario = Path.Combine(UtilConfig.pathAbsTempFiles, string.Concat(UtilString.onlyNumber(DateTime.Now.ToString()), extensao));

            arquivoExcel.SaveAs(pathExcelTemporario);

            using (FileStream stream = System.IO.File.Open(pathExcelTemporario, FileMode.Open, FileAccess.Read)) {
                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                excelReader.IsFirstRowAsColumnNames = true;
                DataSet result = excelReader.AsDataSet();

                foreach (DataTable table in result.Tables)
                {
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        var OImportacao = new ImportacaoFinanceiroDTO();

                        OImportacao.ano         = getCampo(table, i, 0);
                        OImportacao.mes         = getCampo(table, i, 1);
                        OImportacao.dia         = getCampo(table, i, 2);
                        OImportacao.flagFixa    = getCampo(table, i, 3);
                        OImportacao.descricao   = getCampo(table, i, 4);
                        OImportacao.centroCusto = getCampo(table, i, 5);
                        //OImportacao.CentroCusto = getCampo(table, i, 6);
                        OImportacao.categoria               = getCampo(table, i, 7);
                        OImportacao.tipoCategoria           = getCampo(table, i, 8);
                        OImportacao.detalheCategoria        = getCampo(table, i, 9);
                        OImportacao.qtdeParcela             = getCampo(table, i, 10);
                        OImportacao.formaPagamento          = getCampo(table, i, 11);
                        OImportacao.descricaoFormaPagamento = getCampo(table, i, 12);
                        OImportacao.valor = getCampo(table, i, 13);

                        lista.Add(OImportacao);
                    }
                }
            }

            if (lista.Count > 0)
            {
                foreach (var item in lista)
                {
                    if (!String.IsNullOrEmpty(item.ano) && item.flagFixa != "V")
                    {
                        var OTituloDespesaBL = new ContasAPagarBL();

                        var idCentroCusto = 1;//this.getCentroCusto(item.CentroCusto);

                        var valorTotal = Decimal.Round(UtilNumber.toDecimal(item.valor), 2);

                        var listOTituloDespesa = OTituloDespesaBL.listar("").Where(x => x.idCentroCusto == idCentroCusto && x.descricao == item.descricao && x.valorTotal == valorTotal).ToList();

                        if (listOTituloDespesa.Count > 0)
                        {
                            foreach (var OTituloDespesa in listOTituloDespesa)
                            {
                                OTituloDespesaBL.atualizar(OTituloDespesa.id, "flagFixa", (item.flagFixa != "V") ? "S" : "N");
                            }
                        }
                    }
                }
            }

            return(View());
        }
Ejemplo n.º 20
0
        public ActionResult buscarPreco(int?idContribuicao, int idAssociado)
        {
            Associado OAssociado = this.OAssociadoBL.carregar(idAssociado);

            Contribuicao OContribuicao = this.OContribuicaoBL.carregar(UtilNumber.toInt32(idContribuicao));

            if (OAssociado == null)
            {
                return(Json(new JsonMessage {
                    error = true, message = "Esse método precisa do código do associado para calcular o valor da anuidade."
                }, JsonRequestBehavior.AllowGet));
            }

            if (OContribuicao == null)
            {
                return(Json(new JsonMessage {
                    error = true, message = "Informe a contribuição para calcular o valor."
                }, JsonRequestBehavior.AllowGet));
            }

            var OTabela = OContribuicao.retornarTabelaVigente();

            var OPreco = OTabela.retornarPreco(UtilNumber.toInt32(OAssociado.idTipoAssociado));

            if (OPreco.id == 0)
            {
                return(Json(new JsonMessage {
                    error = true, message = "Não há preço configurado para esse tipo de associado."
                }, JsonRequestBehavior.AllowGet));
            }

            var listaVencimentos = OContribuicao.listaContribuicaoVencimento.Where(x => x.dtExclusao == null).ToList();
            var OVencimento      = new ContribuicaoVencimento();

            if (OContribuicao.idTipoVencimento == TipoVencimentoConst.FIXO_PELA_CONTRIBUICAO)
            {
                OVencimento = OContribuicao.retornarProximoVencimento();
            }

            if (OContribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELA_ADMISSAO_ASSOCIADO)
            {
                var anoVigencia = DateTime.Today.Year;
                var dtCobranca  = OAssociado.dtAdmissao ?? DateTime.Today;

                DateTime?dtVencimentoAdmissao = new DateTime(anoVigencia, dtCobranca.Month, dtCobranca.Day);
                OVencimento = OContribuicao.retornarProximoVencimento(dtVencimentoAdmissao);
            }


            if (OContribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELO_ULTIMO_PAGAMENTO)
            {
                var UltimaContribuicao = OAssociadoContribuicaoBL.listar(OContribuicao.id, idAssociado, null, true, "")
                                         .Select(x => new { x.dtPagamento, x.dtVencimentoOriginal })
                                         .OrderByDescending(x => x.dtPagamento)
                                         .FirstOrDefault();

                var dtUltimaContribuicao = UltimaContribuicao == null ?  DateTime.Today : (UltimaContribuicao.dtPagamento ?? UltimaContribuicao.dtVencimentoOriginal);

                DateTime?dtNovoVencimento = new DateTime(DateTime.Today.Year, dtUltimaContribuicao.Month, dtUltimaContribuicao.Day);

                OVencimento = OContribuicao.retornarProximoVencimento(dtNovoVencimento);
            }

            var dtVencimento = OVencimento.dtVencimento;

            var listaJson = listaVencimentos.Select(x => new {
                x.id,
                dtVencimento = string.Concat(x.diaVencimento.ToString().PadLeft(2, '0'), "/", x.mesVencimento.ToString().PadLeft(2, '0'))
            });

            return(Json(new {
                error = false,
                valor = UtilNumber.toDecimal(OPreco.valorFinal).ToString("F"),
                dtVencimento = dtVencimento.exibirData(),
                listaVencimentos = listaJson,
                flagVencimentoFixo = (listaVencimentos.Count > 0),
                dtInicioVigencia = OVencimento.dtInicioVigencia.exibirData(),
                dtFimVigencia = OVencimento.dtFimVigencia.exibirData(),
                OPreco.flagIsento
            }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 21
0
        //Metodo para geracao do titulo de receita
        public override UtilRetorno gerar(object OrigemTitulo)
        {
            var OAssociado = (OrigemTitulo as Associado);

            if (OAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O Objeto (associado) para gerar o título de taxa de inscrição não foi informado"));
            }

            var OTipoAssociado = this.OTipoAssociadoBL.carregar(UtilNumber.toInt32(OAssociado.idTipoAssociado));

            if (OTipoAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O Objeto (tipo) para gerar o título de taxa de inscrição não foi informado"));
            }

            //Verificar se o titulo já existe
            TituloReceita OTituloReceita = this.OTituloReceitaBL.carregarPorReceita(OAssociado.id);

            if (OTituloReceita != null)
            {
                return(UtilRetorno.newInstance(false, "O título já foi gerado antes.", OTituloReceita));
            }

            OTituloReceita = new TituloReceita();

            OTituloReceita.idPessoa = OAssociado.idPessoa;

            OTituloReceita.idTipoReceita = (byte)idTipoReceita;

            OTituloReceita.idReceita = OAssociado.id;

            OTituloReceita.idOrganizacao = OAssociado.idOrganizacao;

            OTituloReceita.idUnidade = OAssociado.idUnidade;

            OTituloReceita.qtdeRepeticao = 1;

            OTituloReceita.mesCompetencia = (byte)DateTime.Today.Month;

            OTituloReceita.anoCompetencia = (short)DateTime.Today.Year;

            if (OTituloReceita.mesCompetencia > 0 && OTituloReceita.anoCompetencia > 0)
            {
                byte?diaCompetencia = DateTime.Today.Day.toByte();

                diaCompetencia = diaCompetencia.toByte() > 0 ? diaCompetencia.toByte() : (byte)1;

                OTituloReceita.dtCompetencia = new DateTime(OTituloReceita.anoCompetencia.toInt(), OTituloReceita.mesCompetencia.toInt(), diaCompetencia.toInt());
            }

            OTituloReceita.idContaBancaria = OTipoAssociado.idContaBancariaInscricao;

            OTituloReceita.idCentroCusto = OTipoAssociado.idCentroCustoInscricao;

            OTituloReceita.idMacroConta = OTipoAssociado.idMacroContaInscricao;

            OTituloReceita.idCategoria = null;


            OTituloReceita.descricao = string.Concat("Taxa de Inscrição", " - ", OAssociado.Pessoa.nome).abreviar(100);

            OTituloReceita.valorTotal = Math.Round(UtilNumber.toDecimal(OTipoAssociado.valorTaxaInscricao), 2);

            OTituloReceita.dtVencimentoOriginal = DateTime.Today.AddDays(OTipoAssociado.diasPrazoTaxaInscricao ?? 5);

            OTituloReceita.dtVencimento = OTituloReceita.dtVencimentoOriginal;

            this.preencherRecibo(ref OTituloReceita, OAssociado.Pessoa);

            this.salvar(OTituloReceita);

            return(UtilRetorno.newInstance(false, "O título foi gerado com sucesso.", OTituloReceita));
        }
        public ActionResult listar(LancamentoDespesasVM ViewModel)
        {
            ViewModel.dtInicio = ViewModel.dtInicio ?? new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            ViewModel.dtFim    = ViewModel.dtFim ?? new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
            var query = this.OTituloDespesaPagamentoResumoVWBL.listarPagamentoDespesas(ViewModel.valorBusca, ViewModel.idCentroCusto.toInt(), ViewModel.idMacroConta.toInt(), ViewModel.idContaBancaria.toInt(), ViewModel.flagPago, ViewModel.pesquisarPor, ViewModel.dtInicio, ViewModel.dtFim);

            if (ViewModel.situacaoArquivoRemessa == "G")
            {
                query = query.Where(x => x.idArquivoRemessa > 0);
            }
            if (ViewModel.situacaoArquivoRemessa == "NG")
            {
                query = query.Where(x => x.idArquivoRemessa == 0 || x.idArquivoRemessa == null);
            }
            if (ViewModel.listaCredores.Any())
            {
                query = query.Where(x => ViewModel.listaCredores.Contains(x.idCredor));
            }
            if (ViewModel.flagTipoSaida == TipoSaidaHelper.EXCEL)
            {
                var OLancamentoDespesaExportacao = new LancamentoDespesaExportacao();
                OLancamentoDespesaExportacao.baixarExcel(query.ToList());
                return(null);
            }
            var listaResumo            = query.Select(x => new { x.dtPagamento, x.dtVencimentoDespesa, x.valorOriginal, x.valorTotal, x.idTituloPagamento, x.valorPago }).ToList();
            var listaDespesasRecebidas = listaResumo.Where(x => x.dtPagamento != null).ToList();
            var listaDespesasEmAberto  = listaResumo.Where(x => x.dtPagamento == null).ToList();
            var listaDespesasAtraso    = listaResumo.Where(x => x.dtPagamento == null && x.dtVencimentoDespesa < DateTime.Now).ToList();

            ViewModel.totalDespesasRecebidas = (listaDespesasRecebidas.Count > 0) ? listaDespesasRecebidas.Sum(x => UtilNumber.toDecimal(x.valorPago)) : 0;
            ViewModel.totalDespesasEmAberto  = (listaDespesasEmAberto.Count > 0) ? listaDespesasEmAberto.Sum(x => x.valorOriginal.toDecimal()) : 0;
            ViewModel.totalDespesasAtraso    = (listaDespesasAtraso.Count > 0) ? listaDespesasAtraso.Sum(x => x.valorOriginal.toDecimal()) : 0;

            ViewModel.listaNomeCredores = query.Select(x => x.nomePessoa).Distinct().OrderBy(x => x).ToList();

            ViewModel.listaTituloDespesaPagamento = query.OrderByDescending(x => x.dtVencimentoDespesa ?? x.dtVencimentoTitulo).ToPagedList(UtilRequest.getNroPagina(), UtilRequest.getNroRegistros());

            return(View(ViewModel));
        }
Ejemplo n.º 23
0
        //
        public static decimal valorLiquido(this TituloReceita OTitulo)
        {
            decimal valorLiquido = Decimal.Subtract(UtilNumber.toDecimal(OTitulo.valorTotal), UtilNumber.toDecimal(OTitulo.valorDesconto));

            return(valorLiquido);
        }
        public ActionResult exibirRecibo(string i)
        {
            int idInscricao = UtilNumber.toInt32(UtilCrypt.toBase64Decode(i));

            var OAssociadoInscricao = this.OAssociadoContribuicaoBL.carregar(idInscricao);

            if (OAssociadoInscricao == null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, UtilMessage.error("Falha", "O pagamento informado não foi localizado no sistema"));

                return(RedirectToAction("error404", "Erro", new { area = "Erros" }));
            }

            var OTitulo = this.OTituloReceitaBL.carregarPorReceita(OAssociadoInscricao.id);

            if (OTitulo == null && OAssociadoInscricao.dtPagamento.HasValue)
            {
                this.OTituloReceitaGeradorBL.gerar(OAssociadoInscricao as object);

                OTitulo = this.OTituloReceitaBL.carregarPorReceita(OAssociadoInscricao.id);

                OTitulo.dtQuitacao = OAssociadoInscricao.dtPagamento;

                this.OTituloReceitaGeradorBL.salvar(OTitulo);
            }

            if (OTitulo == null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, UtilMessage.error("Falha", "O título de pagamento informado não pôde ser localizado."));
                return(RedirectToAction("error404", "Erro", new { area = "Erros" }));
            }

            var ConfiguracaoSistema = ConfiguracaoSistemaBL.getInstance.carregar(OAssociadoInscricao.idOrganizacao);

            string htmlRecibo = ConfiguracaoReciboBL.getInstance.carregar().htmlRecibo;

            if (htmlRecibo.isEmpty())
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, UtilMessage.error("Falha", "Não existem configurações de recibo no momento."));
                return(RedirectToAction("error404", "Erro", new { area = "Erros" }));
            }

            var OTituloRecibo = this.OTituloReceitaReciboVWBL.carregar(OTitulo.id);

            htmlRecibo = htmlRecibo.Replace("#LINK_LOGO#", ConfiguracaoImagemBL.linkImagemOrganizacao(OTitulo.idOrganizacao, ConfiguracaoImagemBL.IMAGEM_PRINT_SISTEMA));

            htmlRecibo = htmlRecibo.Replace("#NOME_ORGANIZACAO#", ConfiguracaoSistema.nomeEmpresaResumo);

            htmlRecibo = htmlRecibo.Replace("#TEL_1_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelPrincipal + " " + OTituloRecibo.organizacaoNroTelPrincipal));

            htmlRecibo = htmlRecibo.Replace("#TEL_2_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelSecundario + " " + OTituloRecibo.organizacaoNroTelSecundario));

            htmlRecibo = htmlRecibo.Replace("#ENDERECO_CABECALHO#", string.Concat(OTituloRecibo.organizacaoLogradouro, ", ", OTituloRecibo.organizacaoNumero, " ", OTituloRecibo.organizacaoComplemento, ", ", OTituloRecibo.organizacaoBairro.isEmpty() ? "" : " " + OTituloRecibo.organizacaoBairro, " - ", UtilString.formatCEP(OTituloRecibo.organizacaoCep)));

            htmlRecibo = htmlRecibo.Replace("#UF_CIDADE_CABECALHO#", string.Concat(OTituloRecibo.organizacaoNomeCidade, ", ", OTituloRecibo.organizacaoSiglaEstado));

            htmlRecibo = htmlRecibo.Replace("#NUMERO#", OTituloRecibo.id.ToString().PadLeft(8, '0'));

            var valorTotal = decimal.Add(OTituloRecibo.valorTotal.toDecimal(), OTituloRecibo.valorTotalJuros.toDecimal());

            valorTotal = decimal.Subtract(valorTotal, UtilNumber.toDecimal(OTituloRecibo.valorDesconto));

            DateTime dtQuitacao = OTituloRecibo.dtQuitacao.GetValueOrDefault();

            htmlRecibo = htmlRecibo.Replace("#VALOR#", valorTotal.ToString("C"));

            htmlRecibo = htmlRecibo.Replace("#NOME#", OTituloRecibo.nomeRecibo);

            htmlRecibo = htmlRecibo.Replace("#NRO_DOCUMENTO#", UtilString.formatCPFCNPJ(OTituloRecibo.documentoRecibo));

            htmlRecibo = htmlRecibo.Replace("#DESCRICAO#", OTituloRecibo.descricao);

            htmlRecibo = htmlRecibo.Replace("#DATA#", String.Concat(dtQuitacao.Day.ToString(), " de ", UtilDate.retornarMesPorExtenso(dtQuitacao.Month), " de ", dtQuitacao.Year.ToString()));

            htmlRecibo = htmlRecibo.Replace("#ASSINATURA#", UtilCrypt.signRecipe("ctb", i));

            var ViewModel = new ReciboVM();

            ViewModel.htmlRecibo = htmlRecibo;

            return(View(ViewModel));
        }
        public ActionResult gerarReceitasPagamentosForm()
        {
            var valorTotal                 = UtilNumber.toDecimal(UtilRequest.getString("valorTotal"));
            var dtPrimeiroVencimento       = UtilRequest.getDateTime("dtPrimeiroVencimento") ?? DateTime.Now.AddMonths(1);
            var parcelas                   = UtilRequest.getInt32("parcelas");
            var flagValorTotalParcelamento = UtilRequest.getString("flagValorTotalParcelamento");
            var valorParcelas              = UtilNumber.toDecimal(UtilRequest.getString("valorParcelas"));
            var flagCompleteDtCompetencia  = UtilRequest.getString("flagCompleteDtCompetencia");
            var dtCompetencia              = UtilRequest.getDateTime("dtCompetencia");

            if (flagValorTotalParcelamento == "S" && !(valorTotal > 0))
            {
                return(Json(new { error = true, message = "Informe o valor total da receita" }));
            }

            if (!(valorParcelas > 0) && flagValorTotalParcelamento != "S")
            {
                return(Json(new { error = true, message = "Informe o valor de cada parcela" }));
            }

            if (parcelas < 2)
            {
                return(Json(new { error = true, message = "Informe o numero de parcelas a serem geradas" }));
            }

            var dtVencimento = dtPrimeiroVencimento;
            var listaTituloReceitaPagamento = new List <TituloReceitaPagamento>();

            for (var x = 0; x < parcelas; x++)
            {
                var OTituloReceitaPagamento = new TituloReceitaPagamento();
                OTituloReceitaPagamento.dtVencimento = dtVencimento.Date;

                OTituloReceitaPagamento.valorOriginal = flagValorTotalParcelamento == "S" ? Math.Round((UtilNumber.toDecimal(valorTotal) / UtilNumber.toInt32(parcelas)), 2) : valorParcelas;

                OTituloReceitaPagamento.descricaoParcela = (x + 1) + "° Parcela";

                dtVencimento = dtVencimento.AddMonths(1);

                var daysInMonth = DateTime.DaysInMonth(dtVencimento.Year, dtVencimento.Month);
                if (dtVencimento.Day < dtPrimeiroVencimento.Day && daysInMonth > dtVencimento.Day)
                {
                    var days = daysInMonth > dtPrimeiroVencimento.Day ? dtPrimeiroVencimento.Day : daysInMonth;
                    dtVencimento = new DateTime(dtVencimento.Year, dtVencimento.Month, days);
                }

                OTituloReceitaPagamento.dtPrevisaoPagamento = OTituloReceitaPagamento.dtVencimento;

                OTituloReceitaPagamento.dtCompetencia = (flagCompleteDtCompetencia == "S" ? dtCompetencia : flagCompleteDtCompetencia == "N" ? OTituloReceitaPagamento.dtVencimento : (DateTime?)null);

                listaTituloReceitaPagamento.Add(OTituloReceitaPagamento);
            }

            //Faz um correção de valores quando for fornecido o valor total do parcelamento
            if (flagValorTotalParcelamento == "S")
            {
                var valorTotalPagamentos = 0M;
                listaTituloReceitaPagamento.ForEach(item => {
                    valorTotalPagamentos += item.valorOriginal;
                });

                listaTituloReceitaPagamento.LastOrDefault().valorOriginal += UtilNumber.toDecimal(valorTotal - valorTotalPagamentos);
            }

            var ViewModel = new ReceitaCadastroForm();

            ViewModel.TituloReceita = new TituloReceita();
            ViewModel.TituloReceita.listaTituloReceitaPagamento = listaTituloReceitaPagamento;

            return(View(ViewModel));
        }
        //
        public static decimal valorLiquido(this TituloDespesa OTitulo)
        {
            decimal valorLiquido = Decimal.Subtract(UtilNumber.toDecimal(OTitulo.valorTotal), UtilNumber.toDecimal(OTitulo.valorTarifas()));

            return(valorLiquido);
        }
        public ActionResult exibirRecibo(string t)
        {
            int idTitulo = UtilNumber.toInt32(UtilCrypt.toBase64Decode(t));

            var OTituloReceita = this.OTituloReceitaBL.carregar(idTitulo);

            if (OTituloReceita == null)
            {
                return(HttpNotFound());
            }

            if (!OTituloReceita.dtQuitacao.HasValue)
            {
                return(HttpNotFound());
            }

            var ConfiguracaoSistema = ConfiguracaoSistemaBL.getInstance.carregar(OTituloReceita.idOrganizacao);

            var ConfiguracaoRecibo = ConfiguracaoReciboBL.getInstance.carregar(OTituloReceita.idOrganizacao);

            if (ConfiguracaoRecibo == null)
            {
                throw new Exception("Configurações de recibo não localizadas.");
            }

            var htmlRecibo = ConfiguracaoRecibo.htmlRecibo;

            var OTituloRecibo = this.OTituloReceitaReciboVWBL.carregar(OTituloReceita.id);

            htmlRecibo = htmlRecibo.Replace("#LINK_LOGO#", ConfiguracaoImagemBL.linkImagemOrganizacao(OTituloReceita.idOrganizacao, ConfiguracaoImagemBL.IMAGEM_PRINT_SISTEMA));

            htmlRecibo = htmlRecibo.Replace("#NOME_ORGANIZACAO#", ConfiguracaoSistema.nomeEmpresaResumo);

            htmlRecibo = htmlRecibo.Replace("#TEL_1_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelPrincipal + " " + OTituloRecibo.organizacaoNroTelPrincipal));

            htmlRecibo = htmlRecibo.Replace("#TEL_2_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelSecundario + " " + OTituloRecibo.organizacaoNroTelSecundario));

            htmlRecibo = htmlRecibo.Replace("#ENDERECO_CABECALHO#", string.Concat(OTituloRecibo.organizacaoLogradouro, ", ", OTituloRecibo.organizacaoNumero, " ", OTituloRecibo.organizacaoComplemento, ", ", OTituloRecibo.organizacaoBairro.isEmpty() ? "" : " " + OTituloRecibo.organizacaoBairro, " - ", UtilString.formatCEP(OTituloRecibo.organizacaoCep)));

            htmlRecibo = htmlRecibo.Replace("#UF_CIDADE_CABECALHO#", string.Concat(OTituloRecibo.organizacaoNomeCidade, ", ", OTituloRecibo.organizacaoSiglaEstado));

            htmlRecibo = htmlRecibo.Replace("#NUMERO#", OTituloRecibo.id.ToString().PadLeft(8, '0'));

            var valorTotal = decimal.Add(OTituloRecibo.valorTotal.toDecimal(), OTituloRecibo.valorTotalJuros.toDecimal());

            valorTotal = decimal.Subtract(valorTotal, UtilNumber.toDecimal(OTituloRecibo.valorDesconto));

            DateTime dtQuitacao = OTituloRecibo.dtQuitacao.GetValueOrDefault();

            htmlRecibo = htmlRecibo.Replace("#VALOR#", valorTotal.ToString("C"));

            htmlRecibo = htmlRecibo.Replace("#NOME#", OTituloRecibo.nomeRecibo);

            htmlRecibo = htmlRecibo.Replace("#NRO_DOCUMENTO#", UtilString.formatCPFCNPJ(OTituloRecibo.documentoRecibo));

            htmlRecibo = htmlRecibo.Replace("#DESCRICAO#", OTituloRecibo.descricao);

            htmlRecibo = htmlRecibo.Replace("#DATA#", String.Concat(dtQuitacao.Day.ToString(), " de ", UtilDate.retornarMesPorExtenso(dtQuitacao.Month), " de ", dtQuitacao.Year.ToString()));

            htmlRecibo = htmlRecibo.Replace("#ASSINATURA#", UtilCrypt.signRecipe("tc", t));

            var ViewModel = new ReciboVM();

            ViewModel.htmlRecibo = htmlRecibo;

            return(View(ViewModel));
        }
Ejemplo n.º 28
0
        public static decimal valorTotalTarifas(this TituloDespesaPagamentoResumoVW OTitulo)
        {
            decimal valorDesconto = Decimal.Add(UtilNumber.toDecimal(OTitulo.valorTarifasBancarias), UtilNumber.toDecimal(OTitulo.valorOutrasTarifas));

            return(valorDesconto);
        }