//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)); }
//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); }
/// <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); }
// 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); }
// 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); }
/// <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); }
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); }
/// <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); }
/// <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); }
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()); }
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)); }
//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)); }
// 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)); }
public static decimal valorTotalTarifas(this TituloDespesaPagamentoResumoVW OTitulo) { decimal valorDesconto = Decimal.Add(UtilNumber.toDecimal(OTitulo.valorTarifasBancarias), UtilNumber.toDecimal(OTitulo.valorOutrasTarifas)); return(valorDesconto); }