/// <summary> /// Retornar Saldo /// </summary> public static decimal saldo(this TituloDespesaPagamento ODespesaPagamento) { decimal valorNegativo = ODespesaPagamento.valorOriginal.toDecimal() + ODespesaPagamento.valorJuros.toDecimal() + ODespesaPagamento.valorMulta.toDecimal(); decimal valorPositivo = ODespesaPagamento.valorDesconto.toDecimal() + ODespesaPagamento.valorPago.toDecimal(); return(valorPositivo - valorNegativo); }
/// <summary> /// Altera Data de Competência /// </summary> private UtilRetorno alterarCampoDtCompetencia(TituloDespesaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } OItem.mesCompetencia = Convert.ToByte(OItem.dtCompetencia?.Month); OItem.anoCompetencia = Convert.ToInt16(OItem.dtCompetencia?.Year); var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.dtCompetencia.ToString(); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <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); }
public UtilRetorno registrarPagamento(TituloDespesaPagamento OTituloDespesaPagamento) { using (var Context = new DataContext()) { try { //Atualizar dados do pagamento var OTituloDespesaPagamentoDB = Context.TituloDespesaPagamento.condicoesSeguranca() .SingleOrDefault(x => x.id == OTituloDespesaPagamento.id && x.dtExclusao == null && x.TituloDespesa.dtQuitacao == null && x.dtPagamento == null); if (OTituloDespesaPagamentoDB == null) { return(UtilRetorno.newInstance(true, "Não foi possível localizar o registro para realizar a baixa do pagamento")); } int qtdePagamentosAbertos = this.listar(OTituloDespesaPagamentoDB.idTituloDespesa).Count(x => x.dtPagamento == null); OTituloDespesaPagamentoDB.idStatusPagamento = StatusPagamentoConst.PAGO; OTituloDespesaPagamentoDB.dtPagamento = OTituloDespesaPagamento.dtPagamento; OTituloDespesaPagamentoDB.idMeioPagamento = OTituloDespesaPagamento.idMeioPagamento; OTituloDespesaPagamentoDB.idFormaPagamento = OTituloDespesaPagamento.definirFormaPagamento(); OTituloDespesaPagamentoDB.dtBaixa = DateTime.Now; OTituloDespesaPagamentoDB.idUsuarioBaixa = User.id(); OTituloDespesaPagamentoDB.valorPago = OTituloDespesaPagamento.valorOriginal; OTituloDespesaPagamentoDB.valorOutrasTarifas = OTituloDespesaPagamento.valorOutrasTarifas; OTituloDespesaPagamentoDB.nroBanco = OTituloDespesaPagamento.nroBanco; OTituloDespesaPagamentoDB.nroContrato = OTituloDespesaPagamento.nroContrato; OTituloDespesaPagamentoDB.nroNotaFiscal = OTituloDespesaPagamento.nroNotaFiscal; OTituloDespesaPagamentoDB.nroDocumento = OTituloDespesaPagamento.nroDocumento; OTituloDespesaPagamentoDB.nroAgencia = OTituloDespesaPagamento.nroAgencia; OTituloDespesaPagamentoDB.nroDigitoAgencia = OTituloDespesaPagamento.nroDigitoAgencia; OTituloDespesaPagamentoDB.nroConta = OTituloDespesaPagamento.nroConta; OTituloDespesaPagamentoDB.nroDigitoConta = OTituloDespesaPagamento.nroDigitoConta; OTituloDespesaPagamentoDB.codigoAutorizacao = OTituloDespesaPagamento.codigoAutorizacao; OTituloDespesaPagamentoDB.valorOutrasTarifas = OTituloDespesaPagamento.valorOutrasTarifas; Context.SaveChanges(); if (qtdePagamentosAbertos > 1) { return(UtilRetorno.newInstance(false, "Baixa do pagamento registrado com sucesso.")); } var OTituloDespesa = Context.TituloDespesa.SingleOrDefault(x => x.id == OTituloDespesaPagamentoDB.idTituloDespesa); OTituloDespesa.dtQuitacao = DateTime.Now; Context.SaveChanges(); return(UtilRetorno.newInstance(false, "Baixa do pagamento registrado com sucesso. Despesa Quitada!")); } catch (Exception ex) { UtilLog.saveError(ex, $"Erro ao registrar pagamento manualmente {OTituloDespesaPagamento.id}, {OTituloDespesaPagamento.dtPagamento}."); } } return(UtilRetorno.newInstance(true, "Não foi possível registrar a baixa pagamento.")); }
//Persistir e inserir um novo registro private TituloDespesaPagamento inserir(TituloDespesaPagamento OTituloDespesaPagamento) { OTituloDespesaPagamento.setDefaultInsertValues(); using (var dataContext = new DataContext()) { dataContext.Configuration.AutoDetectChangesEnabled = false; dataContext.Configuration.ValidateOnSaveEnabled = false; dataContext.TituloDespesaPagamento.Add(OTituloDespesaPagamento); dataContext.SaveChanges(); } return(OTituloDespesaPagamento); }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloDespesaPagamento OTituloDespesaPagamento, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); // var listaCamposEditaveis = new[] { // "descricao", "idContaBancaria", "idCentroCusto", "idMacroConta", "idCategoria", // "nroNotaFiscal", "nroContrato", "codigoBoleto", "idModoPagamento", "idContaBancariaFavorecida", // "documentoPessoaCredor","nomePessoaCredor","nroTelPrincipalCredor" // }; // // if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { // // return UtilRetorno.newInstance(true, "O dado informado não pode ser alterado."); // } OLog.valorAntigo = OTituloDespesaPagamento.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var Retorno = db.validateAndSave(); if (Retorno.flagError) { return(Retorno); } OLog.nomeCampoAlterado = OLog.nomeCampoAlterado.abreviar(255); OLog.nomeCampoDisplay = OLog.nomeCampoDisplay.abreviar(255); OLog.valorNovo = OTituloDespesaPagamento.getValorCampo(OLog.nomeCampoAlterado).removeTags().abreviar(255); OLog.valorAntigo = OLog.valorAntigo.removeTags().abreviar(255); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect.removeTags().abreviar(255); OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); }
//Definir se é um insert ou update e enviar o registro para o banco de dados public TituloDespesaPagamento salvar(TituloDespesaPagamento OTituloDespesaPagamento) { OTituloDespesaPagamento.TituloDespesa = null; OTituloDespesaPagamento.MeioPagamento = null; OTituloDespesaPagamento.FormaPagamento = null; OTituloDespesaPagamento.ativo = true; if (OTituloDespesaPagamento.id == 0) { return(this.inserir(OTituloDespesaPagamento)); } return(this.atualizar(OTituloDespesaPagamento)); }
/// <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); }
/// <summary> /// Persistir e atualizar um registro existente /// </summary> private TituloDespesaPagamento atualizar(TituloDespesaPagamento OTituloDespesaPagamento) { //Localizar existentes no banco //Nao aplicado condicoes de seguranca pois a atualização é usada no checkout TituloDespesaPagamento dbPagamento = this.db.TituloDespesaPagamento.Find(OTituloDespesaPagamento.id); //Configurar valores padrão OTituloDespesaPagamento.setDefaultUpdateValues(); //Atualizacao do pagamento var PagamentoEntry = db.Entry(dbPagamento); PagamentoEntry.CurrentValues.SetValues(OTituloDespesaPagamento); PagamentoEntry.ignoreFields(); db.SaveChanges(); return(OTituloDespesaPagamento); }
// private void gerarPagamento(TituloDespesa OTituloDespesa) { var OPagamento = new TituloDespesaPagamento(); OPagamento.transferirDadosTitulo(OTituloDespesa); OPagamento.idMeioPagamento = MeioPagamentoConst.TRANSFERENCIA_ELETRONICA; OPagamento.idFormaPagamento = FormaPagamentoConst.TRANSFERENCIA_BANCARIA; OPagamento.idStatusPagamento = StatusPagamentoConst.PAGO; OPagamento.dtPagamento = OTituloDespesa.dtQuitacao; OPagamento.dtDebito = OTituloDespesa.dtQuitacao; OPagamento.valorPago = OTituloDespesa.valorTotal; this.OTituloDespesaPagamentoCadastroBL.salvar(OPagamento); }
//Carregamento de registro pelo ID public bool salvarClone(TituloDespesaPagamento TituloDespesaPagamento) { var OTituloDespesaPagamento = new TituloDespesaPagamento(); OTituloDespesaPagamento.idTituloDespesa = TituloDespesaPagamento.idTituloDespesa; OTituloDespesaPagamento.idStatusPagamento = TituloDespesaPagamento.idStatusPagamento; OTituloDespesaPagamento.idMacroConta = TituloDespesaPagamento.idMacroConta; OTituloDespesaPagamento.idCentroCusto = TituloDespesaPagamento.idCentroCusto; OTituloDespesaPagamento.idCategoria = TituloDespesaPagamento.idCategoria; OTituloDespesaPagamento.descParcela = TituloDespesaPagamento.descParcela; OTituloDespesaPagamento.valorOriginal = TituloDespesaPagamento.valorOriginal; OTituloDespesaPagamento.dtVencimento = TituloDespesaPagamento.dtVencimento; OTituloDespesaPagamento.dtCompetencia = TituloDespesaPagamento.dtCompetencia; OTituloDespesaPagamento.mesCompetencia = TituloDespesaPagamento.mesCompetencia; OTituloDespesaPagamento.anoCompetencia = TituloDespesaPagamento.anoCompetencia; OTituloDespesaPagamento.setDefaultInsertValues(); db.TituloDespesaPagamento.Add(OTituloDespesaPagamento); db.SaveChanges(); return(OTituloDespesaPagamento.id > 0); }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloDespesaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposEditaveis = new[] { "idCentroCusto", "idMacroConta", "descParcela", "idCategoria", "idMeioPagamento", "idContaBancaria", "dtVencimento", "dtPrevisaoPagamento", "valorJuros", "valorMulta", "valorDesconto" }; if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "Campo informado não pode ser editado")); } OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.getValorCampo(OLog.nomeCampoAlterado); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <summary> /// Altera o nroDocumento do pagamento /// </summary> private UtilRetorno alterarCampoNroDocumento(TituloDespesaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.nroDocumento; var nroDocumento = UtilString.onlyAlphaNumber(OLog.valorNovo); OItem.nroDocumento = nroDocumento; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.nroDocumento; OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
public ActionResult importar(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)) { var OTituloDespesaBL = new ContasAPagarBL(); var dtPagamento = new DateTime(UtilNumber.toInt32(item.ano), UtilNumber.toInt32(item.mes), UtilNumber.toInt32(item.dia)); var idCategoria = this.getCategoria(item.categoria); var idTipoCategoria = this.getTipoCategoria(item.tipoCategoria); var idDetalheTipoCategoria = this.getDetalheCategoria(item.detalheCategoria); var idCentroCusto = this.getCentroCusto(item.centroCusto); var idFormaPagamento = this.getFormaPagamento(item.formaPagamento); TituloDespesa OTituloDespesa = new TituloDespesa(); OTituloDespesa.descricao = item.descricao; OTituloDespesa.idDespesa = 0; OTituloDespesa.idCategoria = idCategoria; OTituloDespesa.idTipoCategoria = idTipoCategoria; OTituloDespesa.idDetalheTipoCategoria = idDetalheTipoCategoria; OTituloDespesa.idCentroCusto = idCentroCusto; OTituloDespesa.idPeriodoRepeticao = 1; OTituloDespesa.idAgrupador = 0; OTituloDespesa.nroDocumento = ""; OTituloDespesa.qtdeRepeticao = 4; OTituloDespesa.valorTotal = Convert.ToDecimal(item.valor); OTituloDespesa.qtdeRepeticao = 1; OTituloDespesa.dtQuitacao = dtPagamento; TituloDespesaPagamento OTituloDespesaPagamento = new TituloDespesaPagamento(); OTituloDespesaPagamento.dtPagamento = dtPagamento; OTituloDespesaPagamento.idFormaPagamento = idFormaPagamento; //OTituloDespesaPagamento.descricao = OTituloDespesa.descricao; OTituloDespesaPagamento.descParcela = item.descricaoFormaPagamento; OTituloDespesaPagamento.dtVencimento = dtPagamento; OTituloDespesaPagamento.flagPago = "S"; OTituloDespesaPagamento.valorOriginal = OTituloDespesa.valorTotal.Value; OTituloDespesaPagamento.valorPago = OTituloDespesa.valorTotal.Value; OTituloDespesa.listaTituloDespesaPagamento = new List <TituloDespesaPagamento>(); OTituloDespesa.listaTituloDespesaPagamento.Add(OTituloDespesaPagamento); //if (!OTituloDespesaBL.exists(x => x.dtQuitacao == OTituloDespesa.dtQuitacao // && x.descricao == OTituloDespesa.descricao // && x.valorTotal == OTituloDespesa.valorTotal)) //{ // OTituloDespesaBL.salvar(OTituloDespesa); //} } } } return(View()); }
public ActionResult gerarDespesasPagamentosForm() { 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 valorMulta = UtilNumber.toDecimal(UtilRequest.getString("valorMulta")); var valorJuros = UtilNumber.toDecimal(UtilRequest.getString("valorJuros")); var valorDesconto = UtilNumber.toDecimal(UtilRequest.getString("valorDesconto")); var flagCompleteDtCompetencia = UtilRequest.getString("flagCompleteDtCompetencia"); var dtDespesa = UtilRequest.getDateTime("dtDespesa"); if (flagValorTotalParcelamento == "S" && !(valorTotal > 0)) { return(Json(new { error = true, message = "Informe o valor total da despesa" })); } 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 listaTituloDespesaPagamento = new List <TituloDespesaPagamento>(); for (var x = 0; x < parcelas; x++) { var OTituloDespesaPagamento = new TituloDespesaPagamento(); OTituloDespesaPagamento.dtVencimento = dtVencimento.Date; OTituloDespesaPagamento.valorOriginal = flagValorTotalParcelamento == "S" ? Math.Round((UtilNumber.toDecimal(valorTotal) / UtilNumber.toInt32(parcelas)), 2) : valorParcelas; OTituloDespesaPagamento.valorMulta = valorMulta; OTituloDespesaPagamento.valorJuros = valorJuros; OTituloDespesaPagamento.valorDesconto = valorDesconto; OTituloDespesaPagamento.descParcela = (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); } OTituloDespesaPagamento.dtCompetencia = (flagCompleteDtCompetencia == "S" ? dtDespesa : flagCompleteDtCompetencia == "N" ? OTituloDespesaPagamento.dtVencimento : (DateTime?)null); listaTituloDespesaPagamento.Add(OTituloDespesaPagamento); } //Faz um correção de valores quando for fornecido o valor total do parcelamento if (flagValorTotalParcelamento == "S") { var valorTotalPagamentos = 0M; listaTituloDespesaPagamento.ForEach(item => { valorTotalPagamentos += item.valorOriginal; }); listaTituloDespesaPagamento.LastOrDefault().valorOriginal += UtilNumber.toDecimal(valorTotal - valorTotalPagamentos); } var ViewModel = new DespesaCadastroForm(); ViewModel.TituloDespesa = new TituloDespesa(); ViewModel.TituloDespesa.listaTituloDespesaPagamento = listaTituloDespesaPagamento; return(View(ViewModel)); }