public static List <GridRowTransacao> GetGridTransacoes(Usuario usuario, int?mes = null, int?ano = null) { try { List <GridRowTransacao> gridTransacoes = new List <GridRowTransacao>(); foreach (Transacao transacao in GetTransacoesEfetuadas(usuario, mes, ano)) { Categoria categoria = CategoriaManager.GetCategoriaById(transacao.IdCategoria); gridTransacoes.Add(new GridRowTransacao { IdTransacao = transacao.IdTransacao, Identificacao = transacao.Identificacao, IdCategoria = transacao.IdCategoria, Categoria = categoria.Nome, DescricaoCategoria = categoria.Descricao, IconeCategoria = "Images/Categorias/" + categoria.Icone, Modo = MODO_TRANSACAO, TipoFluxo = transacao.TipoFluxo, Descricao = transacao.Descricao, Data = (DateTime)transacao.Data, Valor = (Decimal)transacao.Valor, Provisionado = transacao.Provisionado, Comentario = transacao.Comentario }); } foreach (Transacao provisao in GetTransacoesProvisionadas(usuario, mes, ano)) { Categoria categoria = CategoriaManager.GetCategoriaById(provisao.IdCategoria); gridTransacoes.Add(new GridRowTransacao { IdTransacao = provisao.IdTransacao, Identificacao = provisao.Identificacao, IdCategoria = provisao.IdCategoria, Categoria = categoria.Nome, DescricaoCategoria = categoria.Descricao, IconeCategoria = "Images/Categorias/" + categoria.Icone, Modo = MODO_PROVISAO, TipoFluxo = provisao.TipoFluxo, Descricao = provisao.Descricao, Data = (DateTime)provisao.DataProvisao, Valor = (Decimal)provisao.ValorProvisao, Provisionado = provisao.Provisionado, Comentario = provisao.Comentario }); } // Retorna uma lista de transações de despesa do usuário fornecido: return(gridTransacoes.OrderByDescending(x => x.Data).ToList()); } catch (Exception ex) { throw ex; } }
private static void ValidarDadosTransacao(Transacao transacao) { if (UsuarioManager.GetUsuarioById(transacao.IdUsuario) == null) { throw new TransacaoUsuarioException("Não foi possível salvar a transação com o usuário informado."); } if (CategoriaManager.GetCategoriaById(transacao.IdCategoria) == null) { throw new TransacaoUsuarioException("Não foi possível salvar a transação com a categoria informada."); } if (String.IsNullOrWhiteSpace(transacao.Descricao) || transacao.Descricao.Trim().Length > 100) { throw new TransacaoDescricaoException("A descrição deve ser preenchida (até 100 caracteres)."); } if (transacao.Provisionado == TRANSACAO_PROVISIONADA) { if (transacao.ValorProvisao == null) { throw new TransacaoValorException("O valor deve ser preenchido com um número decimal."); } if (transacao.DataProvisao == null) { throw new TransacaoDataException("A data deve ser preenchida com uma data válida."); } } else { if (transacao.Valor == null) { throw new TransacaoValorException("O valor deve ser preenchido com um número decimal."); } if (transacao.Data == null) { throw new TransacaoDataException("A data deve ser preenchida com uma data válida."); } } if (!transacao.TipoFluxo.Equals(CategoriaManager.TIPO_FLUXO_RECEITA) && !transacao.TipoFluxo.Equals(CategoriaManager.TIPO_FLUXO_DESPESA)) { throw new TransacaoTipoFluxoException("O tipo de fluxo deve ser 'Receita' ou 'Despesa'."); } if (transacao.Comentario.Trim().Length > 255) { throw new TransacaoDescricaoException("O comentário pode ter no máximo 255 caracteres)."); } }
private static void ValidarDadosPlanejamento(Planejamento planejamento) { if (UsuarioManager.GetUsuarioById(planejamento.IdUsuario) == null) { throw new PlanejamentoUsuarioException("Não foi possível salvar o planejamento com o usuário informado."); } if (CategoriaManager.GetCategoriaById(planejamento.IdCategoria) == null) { throw new PlanejamentoCategoriaException("Não foi possível salvar o planejamento com a categoria informada."); } if (planejamento.Mes < 1 || planejamento.Mes > 12) { throw new PlanejamentoMesException("O mês fornecido não é válido."); } if (planejamento.Valor <= 0) { throw new PlanejamentoValorException("O valor deve ser preenchido com um número decimal positivo."); } }
public static List <GridRowPlanejamento> GetRowPlanejamentos(Usuario usuario, int mes, int ano) { try { List <GridRowPlanejamento> planejamentos = new List <GridRowPlanejamento>(); List <Transacao> transacoes = TransacaoManager.GetTransacoesEfetuadas(usuario, mes, ano); foreach (Categoria categoria in CategoriaManager.GetCategorias().OrderByDescending(x => x.Nome).OrderBy(x => x.TipoFluxo)) { Decimal? valorEfetivo = transacoes.Where(x => x.IdCategoria == categoria.IdCategoria).Sum(x => x.Valor); Planejamento planejamento = GetPlanejamentoCategoriaByMesEAno(usuario, categoria, mes, ano); if (valorEfetivo > 0 || planejamento != null) { planejamentos.Add(new GridRowPlanejamento { IdPlanejamento = planejamento == null ? Guid.NewGuid() : planejamento.IdPlanejamento, IdCategoria = categoria.IdCategoria, Categoria = categoria.Nome, DescricaoCategoria = categoria.Descricao, IconeCategoria = "Images/Categorias/" + categoria.Icone, TipoFluxo = categoria.TipoFluxo, Mes = mes, Ano = ano, ValorRealizado = valorEfetivo != null ? (Decimal)valorEfetivo : 0, ValorPlanejado = planejamento != null ? planejamento.Valor : 0 }); } } return(planejamentos); } catch (Exception ex) { throw ex; } }
public static void SavePlanejamento(Planejamento planejamento) { try { // A aplicação salva o planejamento substituindo o anterior, caso exista: Planejamento old = GetPlanejamentoCategoriaByMesEAno(UsuarioManager.GetUsuarioById(planejamento.IdUsuario), CategoriaManager.GetCategoriaById(planejamento.IdCategoria), planejamento.Mes, planejamento.Ano); if (old == null) { planejamento.IdPlanejamento = Guid.NewGuid(); AddPlanejamento(planejamento); } else { planejamento.IdPlanejamento = old.IdPlanejamento; EditPlanejamento(planejamento); } } catch (Exception ex) { throw ex; } }