/// <summary> /// /// </summary> public bool salvar(TituloDespesa OTituloDespesa) { OTituloDespesa.codigoBoleto = OTituloDespesa.codigoBoleto.onlyNumber().abreviar(50); OTituloDespesa.nroDocumento = OTituloDespesa.nroDocumento.abreviar(50); OTituloDespesa.nroContrato = OTituloDespesa.nroContrato.abreviar(20); OTituloDespesa.descricao = OTituloDespesa.descricao.abreviar(500); OTituloDespesa.Pessoa = OPessoaBL.carregar(OTituloDespesa.idPessoa.toInt()) ?? new Pessoa(); //Preencher dados credor OTituloDespesa.nomePessoaCredor = OTituloDespesa.Pessoa.nome.abreviar(100); OTituloDespesa.documentoPessoaCredor = OTituloDespesa.Pessoa.nroDocumento.abreviar(20); OTituloDespesa.nroTelPrincipalCredor = OTituloDespesa.Pessoa.nroTelPrincipal.abreviar(15); OTituloDespesa.nroTelSecundarioCredor = OTituloDespesa.Pessoa.nroTelSecundario.abreviar(15); OTituloDespesa.emailPrincipalCredor = OTituloDespesa.Pessoa.emailPrincipal.abreviar(50); OTituloDespesa.observacao = OTituloDespesa.observacao.abreviar(400); OTituloDespesa.Pessoa = null; OTituloDespesa.ContaBancaria = null; OTituloDespesa.codigoBoleto = OTituloDespesa.codigoBoleto.onlyNumber(); OTituloDespesa.ContaBancariaFavorecida = null; OTituloDespesa.setDefaultInsertValues(); if (OTituloDespesa.listaTituloDespesaPagamento.Any()) { foreach (var Item in OTituloDespesa.listaTituloDespesaPagamento.ToList()) { Item.nroNotaFiscal = OTituloDespesa.nroNotaFiscal; Item.nroDocumento = OTituloDespesa.nroDocumento.abreviar(50); Item.nroContrato = OTituloDespesa.nroContrato.abreviar(20); Item.idContaBancariaFavorecida = OTituloDespesa.idContaBancariaFavorecida; Item.setDefaultInsertValues(); } } db.TituloDespesa.Add(OTituloDespesa); db.SaveChanges(); bool flagSucesso = OTituloDespesa.id > 0; if (flagSucesso) { this.onDespesaCadastrada.subscribe(new OnDespesaCadastradaHandler()); this.onDespesaCadastrada.publish(OTituloDespesa as object); } return(flagSucesso); }
// private UtilRetorno salvarDespesas(TituloDespesa ODespesaClone, int qtdeReplicacoes) { var ORetorno = UtilRetorno.newInstance(false); var listaDespesasGeradas = new List <TituloDespesa>(); ODespesaClone.listaTituloDespesaPagamento = this.ajustarPagamentos(ODespesaClone, ODespesaClone.listaTituloDespesaPagamento.ToList()); listaDespesasGeradas.Add(ODespesaClone); qtdeReplicacoes--; for (int i = 1; i <= qtdeReplicacoes; i++) { var ODespesaReplicada = ODespesaClone.ToJsonObject <TituloDespesa>(); ODespesaReplicada.dtDespesa = ODespesaClone.dtDespesa?.AddMonths(i); ODespesaReplicada.mesCompetencia = ODespesaReplicada.dtDespesa?.Month.toByte(); ODespesaReplicada.anoCompetencia = Convert.ToInt16(ODespesaReplicada.dtDespesa?.Year); ODespesaReplicada.dtVencimento = ODespesaClone.dtVencimento?.AddMonths(i); ODespesaReplicada.listaTituloDespesaPagamento = this.ajustarPagamentos(ODespesaReplicada, ODespesaReplicada.listaTituloDespesaPagamento.ToList()); listaDespesasGeradas.Add(ODespesaReplicada); } using (var ctx = this.db) { ctx.Configuration.AutoDetectChangesEnabled = false; ctx.Configuration.ValidateOnSaveEnabled = false; listaDespesasGeradas.ForEach(x => { x.setDefaultInsertValues(); x.listaTituloDespesaPagamento.ForEach(c => { c.setDefaultInsertValues(); }); }); ctx.TituloDespesa.AddRange(listaDespesasGeradas); ctx.SaveChanges(); } ORetorno.info = listaDespesasGeradas.FirstOrDefault().id; return(ORetorno); }
//Atualizar os dados de um titulo de Despesa private void atualizar(TituloDespesa OTituloDespesa) { TituloDespesa dbTitulo = this.db.TituloDespesa.Find(OTituloDespesa.id); var entryTitulo = db.Entry(dbTitulo); entryTitulo.CurrentValues.SetValues(OTituloDespesa); OTituloDespesa.setDefaultUpdateValues(); entryTitulo.State = EntityState.Modified; entryTitulo.ignoreFields(new[] { "idPessoa", "idOrganizacao", "idUnidade", "idCentroCusto", "idDespesa" }); db.SaveChanges(); }
// private List <TituloDespesaPagamento> ajustarPagamentos(TituloDespesa ODespesaClone, List <TituloDespesaPagamento> listaPagamentosClone) { listaPagamentosClone.ForEach(x => { x.idStatusPagamento = StatusPagamentoConst.ABERTO; x.dtCompetencia = ODespesaClone.dtDespesa; x.mesCompetencia = ODespesaClone.dtDespesa?.Month.toByte(); x.anoCompetencia = Convert.ToInt16(ODespesaClone.dtDespesa?.Year); x.dtVencimento = ODespesaClone.dtVencimento; }); return(listaPagamentosClone); }
/// <summary> /// Verifica se o modo de pagamento é necessário que os bancos das contas de débito e crédito sejam iguais /// </summary> private bool verificarConta(TituloDespesa TituloDespesa) { if (TituloDespesa.idModoPagamento == (int)ModoPagamentoDespesaEnum.CONTA_CORRENTE_MESMO_TITULAR || TituloDespesa.idModoPagamento == (int)ModoPagamentoDespesaEnum.CONTA_CORRENTE_OUTRO_TITULAR || TituloDespesa.idModoPagamento == (int)ModoPagamentoDespesaEnum.CONTA_POUPANCA) { TituloDespesa.ContaBancaria = OContaBancariaBL.carregar(TituloDespesa.idContaBancaria.toInt()) ?? new ContaBancaria(); TituloDespesa.ContaBancariaFavorecida = ODadoBancarioConsultaBL.carregar(TituloDespesa.idContaBancariaFavorecida.toInt()) ?? new DadoBancario(); if (TituloDespesa.ContaBancaria.idBanco != TituloDespesa.ContaBancariaFavorecida.idBanco) { return(false); } } return(true); }
public ActionResult excluir(TituloDespesa ViewModel) { if (ViewModel.motivoExclusao.isEmpty()) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Informe o motivo da exclusão."); return(View("modal-excluir-despesa", ViewModel)); } var ORetorno = this.OTituloDespesaBL.excluir(ViewModel.id, ViewModel.motivoExclusao); if (ORetorno.flagError == false) { return(Json(new { error = false, message = "Despesa removida com sucesso", urlRetorno = Url.Action("listar", "LancamentoDespesas", new { area = "FinanceiroLancamentos" }) })); } this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, ORetorno.listaErros.FirstOrDefault()); return(View("modal-excluir-despesa", ViewModel)); }
private UtilRetorno alterarCampo(TituloDespesa OTituloDespesa, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposNaoEditaveis = new[] { "id" , "idOrganizacao" , "idUsuarioCadastro" , "idUsuarioAlteracao" , "dtCadastro" }; if (listaCamposNaoEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "O dado informado não pode ser alterado.")); } OLog.valorAntigo = OTituloDespesa.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 = OTituloDespesa.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); }
// 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); }
/// <summary> /// Preencher os dados de recibo de um titulo de Despesa /// </summary> protected void preencherRecibo(ref TituloDespesa OTituloDespesa, Pessoa OPessoa) { OTituloDespesa.nomePessoaCredor = OPessoa.nome; OTituloDespesa.documentoPessoaCredor = OPessoa.nroDocumento; OTituloDespesa.nroTelPrincipalCredor = string.Concat(OPessoa.dddTelPrincipal, OPessoa.nroTelPrincipal); //Carregar E-mails da Pessoa var listaEmails = OPessoa.listaEmails.Where(x => x.dtExclusao == null && !string.IsNullOrEmpty(x.email)).ToList(); if (listaEmails.Any()) { OTituloDespesa.emailPrincipalCredor = listaEmails.Select(x => x.email).FirstOrDefault(); } //Carregar E-mails da Pessoa var listaTelefones = OPessoa.listaTelefones.Where(x => x.dtExclusao == null && !string.IsNullOrEmpty(x.nroTelefone)).ToList(); if (listaTelefones.Any()) { OTituloDespesa.nroTelPrincipalCredor = listaTelefones.Select(x => x.nroTelefone).FirstOrDefault(); } //Carregar Endereco da Pessoa var listaEnderecos = OPessoa.listaEnderecos.Where(x => x.dtExclusao == null).ToList(); var OEndereco = listaEnderecos.FirstOrDefault(x => !string.IsNullOrEmpty(x.cep)) ?? new PessoaEndereco(); // OTituloDespesa.cepRecibo = OEndereco.cep; // // OTituloDespesa.logradouroRecibo = OEndereco.logradouro; // // OTituloDespesa.complementoRecibo = OEndereco.complemento; // // OTituloDespesa.numeroRecibo = OEndereco.numero; // // OTituloDespesa.bairroRecibo = OEndereco.bairro; // // OTituloDespesa.idCidadeRecibo = OEndereco.idCidade; }
//Inserir os dados para um novo titulo de Despesa private void inserir(TituloDespesa OTituloDespesa) { OTituloDespesa.setDefaultInsertValues(); OTituloDespesa.listaTituloDespesaPagamento = null; OTituloDespesa.Categoria = null; OTituloDespesa.CentroCusto = null; OTituloDespesa.ContaBancaria = null; OTituloDespesa.MacroConta = null; OTituloDespesa.Pessoa = null; using (var dataContext = new DataContext()) { dataContext.TituloDespesa.Add(OTituloDespesa); dataContext.SaveChanges(); } }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloDespesa OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposEditaveis = new[] { "flagFixa", "valorTotal", "descricao", "idContaBancaria", "idCentroCusto", "idMacroConta", "idCategoria", "nroNotaFiscal", "nroContabil", "nroContrato", "codigoBoleto", "nroDocumento", "idTipoDespesa", "idModoPagamento", "idContaBancariaFavorecida", "documentoPessoaCredor", "nomePessoaCredor", "nroTelPrincipalCredor" }; if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "Campo informado não pode ser editado")); } OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.getValorCampo(OLog.nomeCampoAlterado); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
// public UtilRetorno clonar(TituloDespesa ODespesa, int qtdeReplicacoes) { var ORetorno = UtilRetorno.newInstance(false); var ODespesaClone = this.carregarDadosDespesaBase(ODespesa.id); if (ODespesaClone == null) { ORetorno.flagError = true; ORetorno.listaErros.Add("A despesa informada não foi encontrada."); return(ORetorno); } ODespesaClone.id = 0; ODespesaClone.idTituloDespesaOrigem = ODespesa.id; ODespesaClone.descricao = ODespesa.descricao; ODespesaClone.idPessoa = ODespesa.idPessoa; ODespesaClone.dtDespesa = ODespesa.dtDespesa; ODespesaClone.mesCompetencia = Convert.ToByte(ODespesa.dtDespesa?.Month); ODespesaClone.anoCompetencia = Convert.ToInt16(ODespesa.dtDespesa?.Year); ODespesaClone.dtVencimento = ODespesa.dtVencimento; ODespesaClone.dtQuitacao = null; ORetorno = this.salvarDespesas(ODespesaClone, qtdeReplicacoes); return(ORetorno); }
//Salvar uma Despesa no banco de dados //A operacao pode ser de atualizacao ou de insercao public virtual TituloDespesa salvar(TituloDespesa OTituloDespesa) { OTituloDespesa.Pessoa = OPessoaBL.carregar(OTituloDespesa.idPessoa.toInt()) ?? new Pessoa(); //Tratar valores OTituloDespesa.nroTelPrincipalCredor = UtilString.onlyAlphaNumber(OTituloDespesa.Pessoa.nroTelPrincipal).abreviar(15); OTituloDespesa.nroTelSecundarioCredor = UtilString.onlyAlphaNumber(OTituloDespesa.Pessoa.nroTelSecundario).abreviar(15); OTituloDespesa.nomePessoaCredor = OTituloDespesa.Pessoa.nome.abreviar(100); OTituloDespesa.documentoPessoaCredor = OTituloDespesa.Pessoa.nroDocumento.abreviar(20); OTituloDespesa.observacao = OTituloDespesa.observacao.abreviar(1000); //Anular relacionamentos que nao se deseja inserções OTituloDespesa.idPessoa = OTituloDespesa.idPessoa == 0 ? null : OTituloDespesa.idPessoa; OTituloDespesa.Pessoa = null; OTituloDespesa.CentroCusto = null; OTituloDespesa.PeriodoRepeticao = null; if (OTituloDespesa.id > 0) { this.atualizar(OTituloDespesa); } else { this.inserir(OTituloDespesa); } return(OTituloDespesa); }
//Metodo para geracao do titulo de Despesa public override UtilRetorno gerar(object OrigemTitulo) { var OContaBancariaMovimentacao = (OrigemTitulo as ContaBancariaMovimentacao); if (OContaBancariaMovimentacao == null) { return(UtilRetorno.newInstance(true, "O registro ContaMovimentação está nulo.")); } //Verificar se o titulo já existe var OTituloDespesa = this.OTituloDespesaBL.carregarPorDespesa(OContaBancariaMovimentacao.id); if (OTituloDespesa != null) { return(UtilRetorno.newInstance(false, "O título já foi gerado anteriormente.", OTituloDespesa)); } OTituloDespesa = new TituloDespesa(); OTituloDespesa.idTipoDespesa = idTipoDespesa; OTituloDespesa.idDespesa = OContaBancariaMovimentacao.id; OTituloDespesa.idOrganizacao = OContaBancariaMovimentacao.idOrganizacao.toInt(); OTituloDespesa.idUnidade = OContaBancariaMovimentacao.idUnidade; OTituloDespesa.qtdeRepeticao = 1; OTituloDespesa.mesCompetencia = (byte?)OContaBancariaMovimentacao.dtOperacao.Month; OTituloDespesa.anoCompetencia = (short?)OContaBancariaMovimentacao.dtOperacao.Year; if (OTituloDespesa.mesCompetencia > 0 && OTituloDespesa.anoCompetencia > 0) { byte?diaCompetencia = OContaBancariaMovimentacao.dtOperacao.Day.toByte(); diaCompetencia = diaCompetencia.toByte() > 0 ? diaCompetencia.toByte() : (byte)1; OTituloDespesa.dtDespesa = new DateTime(OTituloDespesa.anoCompetencia.toInt(), OTituloDespesa.mesCompetencia.toInt(), diaCompetencia.toInt()); } OTituloDespesa.idContaBancaria = OContaBancariaMovimentacao.idContaBancariaOrigem; var OContaBancariaDestino = this.OContaBancariaBL.carregar(OContaBancariaMovimentacao.idContaBancariaDestino) ?? new ContaBancaria(); OTituloDespesa.descricao = $"Transferência realizada para a conta { OContaBancariaDestino.OBanco?.nome }: { OContaBancariaDestino.nroConta }/{ OContaBancariaDestino.nroAgencia }"; OTituloDespesa.valorTotal = OContaBancariaMovimentacao.valor; OTituloDespesa.dtVencimento = DateTime.Now; OTituloDespesa.dtQuitacao = DateTime.Now; this.salvar(OTituloDespesa); if (OTituloDespesa.id > 0) { this.gerarPagamento(OTituloDespesa); } return(UtilRetorno.newInstance(false, "O título foi gerado com sucesso.", OTituloDespesa)); }
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()); }