Exemple #1
0
        protected void CarregarGridTransacoes()
        {
            Periodo = Session["Periodo"].ToString();

            DateTime periodo = DateTime.ParseExact(Periodo, @"MMMM / yyyy", CultureInfo.GetCultureInfo("pt-BR"));

            Transacoes = TransacaoManager.GetGridTransacoes(Usuario, periodo.Month, periodo.Year);

            gridTransacoes.DataSource = Transacoes;
            gridTransacoes.DataBind();
        }
Exemple #2
0
        protected void CarregarGridTransacoes()
        {
            Periodo = Session["Periodo"]?.ToString();

            DateTime periodo = DateTime.ParseExact(Periodo, @"MMMM / yyyy", CultureInfo.GetCultureInfo("pt-BR"));

            Transacoes = TransacaoManager.GetGridTransacoes(Usuario, periodo.Month, periodo.Year).Where(x => x.Modo == TransacaoManager.MODO_TRANSACAO).ToList();

            gridTransacoes.DataSource = Transacoes.Take(3).ToList();
            gridTransacoes.DataBind();
        }
Exemple #3
0
        private void UpdateSaldoScript(String modal, String message)
        {
            decimal saldo = TransacaoManager.GetSaldo(Usuario);

            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append(@"<script type='text/javascript'>");
            sb.Append("$('#lblSaldo').text('" + saldo.ToString("C2", CultureInfo.GetCultureInfo("pt-BR")) + "');");
            sb.Append("$('#lblSaldo')[0].className = '" + (saldo < 0 ? "text-danger" : "text-success") + "';");
            sb.Append("swal({ title: 'Concluído', text: '" + message + "!', type: 'success', timer: 2000 });");
            sb.Append("$('#" + modal + "').modal('hide');");
            sb.Append(@"</script>");
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "closeModalScript", sb.ToString(), false);
        }
Exemple #4
0
 // DELETE api/transacoes/{id} - remove a transação recebida no banco de dados:
 public void Delete(String id)
 {
     try
     {
         Transacao transacao = TransacaoManager.GetTransacaoById(Guid.Parse(id.Trim()));
         TransacaoManager.DeleteTransacao(transacao);
     }
     catch (Exception ex)
     {
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
         {
             ReasonPhrase = "Erro ao remover transação",
             Content      = new StringContent(ex.Message)
         });
     }
 }
Exemple #5
0
 // PUT api/transacoes/{id} - edita a transação recebida no banco de dados:
 public Transacao Put(String id, [FromBody] Transacao transacao)
 {
     try
     {
         transacao.IdTransacao = Guid.Parse(id.Trim());
         TransacaoManager.EditTransacao(transacao);
         return(TransacaoManager.GetTransacaoById(transacao.IdTransacao));
     }
     catch (Exception ex)
     {
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
         {
             ReasonPhrase = "Erro ao editar transação",
             Content      = new StringContent(ex.Message)
         });
     }
 }
Exemple #6
0
 // GET api/transacoes/{id} - exibe todas as transacoes de um usuário:
 public List <Transacao> Get(String id, int?mes = null, int?ano = null)
 {
     try
     {
         Guid    guid    = Guid.Parse(id.Trim());
         Usuario usuario = UsuarioManager.GetUsuarioById(guid);
         if (usuario != null)
         {
             return(TransacaoManager.GetTransacoes(usuario, mes, ano));
         }
         return(null);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Exemple #7
0
        protected void BtnDeletarTransacao_Click(object sender, EventArgs e)
        {
            if (Guid.TryParse(txtDeletarTransacao.Value, out Guid guid))
            {
                try
                {
                    Transacao transacao = TransacaoManager.GetTransacaoById(guid);
                    TransacaoManager.DeleteTransacao(transacao);

                    UpdateSaldoScript("deletarTransacaoModal", "Lançamento removido com sucesso!");
                }
                catch (Exception)
                {
                    ShowMessageErrorScript("Ocorreu um erro ao remover o lançamento. Entre em contato com o administrador!");
                    StartComponentsScript("deletarTransacaoModal", new GridRowTransacao());
                }
            }
        }
Exemple #8
0
        // Método que carrega a lista de períodos das transações do usuário:
        private void AtualizaListaPeriodos(Usuario usuario)
        {
            DateTime periodo = DateTime.Now;

            if (Session["Periodo"] != null)
            {
                periodo = DateTime.ParseExact(Session["Periodo"].ToString(), @"MMMM / yyyy", CultureInfo.GetCultureInfo("pt-BR"));
            }

            // Define as variáveis dos extremos do período, inicializando com a data atual:
            DateTime dataInicio = DateTime.Now.AddMonths(-2) < periodo?DateTime.Now.AddMonths(-2) : periodo;

            DateTime dataFim = DateTime.Now.AddMonths(2) > periodo?DateTime.Now.AddMonths(2) : periodo;

            // Define a lista de transações do usuário:
            List <GridRowTransacao> transacoes = TransacaoManager.GetGridTransacoes(usuario);

            if (transacoes.Count > 0)
            {
                // Define a primeira e última transações do usuário baseadas na data:
                GridRowTransacao primeiraTransacao = transacoes.Last();
                GridRowTransacao ultimaTransacao   = transacoes.First();

                // Atualiza as datas de início e fim da lista de períodos com as datas das transações:
                if ((DateTime)primeiraTransacao.Data < dataInicio)
                {
                    dataInicio = (DateTime)primeiraTransacao.Data;
                }
                if ((DateTime)ultimaTransacao.Data > dataFim)
                {
                    dataFim = (DateTime)ultimaTransacao.Data;
                }
            }

            // Limpa a lista atual e adiciona os períodos de acordo com as datas de início e fim:
            ddListaPeriodo.Items.Clear();
            while (dataInicio.Year < dataFim.Year || (dataInicio.Year == dataFim.Year && dataInicio.Month <= dataFim.Month))
            {
                String   data = dataInicio.ToString(@"MMMM / yyyy", CultureInfo.GetCultureInfo("pt-BR"));
                ListItem item = new ListItem(data);
                ddListaPeriodo.Items.Add(item);
                dataInicio = dataInicio.AddMonths(1);
            }
        }
Exemple #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // Verifica se o usuário está logado:
            if (Session["Usuario"] != null)
            {
                Usuario usuario = (Usuario)Session["Usuario"];
                UsuarioConectado = true;

                // Atualiza o nome e o saldo do usuário na página:
                lblNomeUsuario.Text = usuario.Nome;
                decimal saldo = TransacaoManager.GetSaldo(usuario);
                lblSaldo.Text     = saldo.ToString("C2", CultureInfo.GetCultureInfo("pt-BR"));
                lblSaldo.CssClass = saldo < 0 ? "text-danger" : "text-success";

                // Verifica se o usuário possui chamados respondidos e não validados e exibe um alerta ao usuário:
                List <Chamado> chamados = ChamadoManager.GetChamadosAbertosRespondidos(usuario);
                if (chamados.Count > 0)
                {
                    lblChamados.Visible = true;
                    lblChamados.Text    = chamados.Count.ToString();
                    linkContato.Title   = "Você tem mensagem(s) respondida(s)";
                }

                // Verifica se o usuário selecionou um período na página e atualiza o período na Session:
                if (IsPostBack && ddListaPeriodo.SelectedIndex >= 0)
                {
                    Session["Periodo"] = ddListaPeriodo.SelectedValue;
                }

                // Atualiza a lista de períodos com os meses que contêm transações do usuário:
                AtualizaListaPeriodos(usuario);

                // Seleciona na lista o período do escopo baseado na Session do usuário:
                if (Session["Periodo"] != null)
                {
                    ddListaPeriodo.SelectedValue = Session["Periodo"].ToString();
                }
            }
            else
            {
                UsuarioConectado = false;
            }
        }
Exemple #10
0
 // POST api/transacoes - salva a transação recebida no banco de dados:
 public Transacao Post([FromBody] Transacao transacao)
 {
     try
     {
         if (transacao.IdTransacao == Guid.Empty)
         {
             transacao.IdTransacao = Guid.NewGuid();
         }
         TransacaoManager.AddTransacao(transacao);
         return(TransacaoManager.GetTransacaoById(transacao.IdTransacao));
     }
     catch (Exception ex)
     {
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
         {
             ReasonPhrase = "Erro ao criar transação",
             Content      = new StringContent(ex.Message)
         });
     }
 }
Exemple #11
0
        protected void BtnSalvarTransacao_Click(object sender, EventArgs e)
        {
            GridRowTransacao rowTransacao;

            if (Guid.TryParse(txtIdTransacao.Value, out Guid guid))
            {
                rowTransacao = Transacoes.FirstOrDefault(x => x.IdTransacao.Equals(guid));
            }
            else
            {
                rowTransacao = new GridRowTransacao
                {
                    TipoFluxo   = rdoReceita.Checked ? CategoriaManager.TIPO_FLUXO_RECEITA : CategoriaManager.TIPO_FLUXO_DESPESA,
                    IdCategoria = !String.IsNullOrWhiteSpace(txtIdCategoria.Value) ? Guid.Parse(txtIdCategoria.Value) : Guid.Empty
                };
            }
            try
            {
                // Limpa a mensagem de alerta, caso haja algum texto:
                lblMsg.Text = String.Empty;

                if (!Decimal.TryParse(txtValor.Value.Replace(".", ""), NumberStyles.AllowDecimalPoint, CultureInfo.GetCultureInfo("pt-BR"), out Decimal valor))
                {
                    txtValor.Focus();
                    lblMsg.Text = "Insira um número válido para o valor.";
                    StartComponentsScript("gerenciarTransacaoModal", rowTransacao);
                    return;
                }
                if (!rdoReceita.Checked && !rdoDespesa.Checked)
                {
                    lblMsg.Text = "O tipo do lançamento deve ser definido.";
                    StartComponentsScript("gerenciarTransacaoModal", rowTransacao);
                    return;
                }
                if (!rdoTransacao.Checked && !rdoProvisao.Checked)
                {
                    lblMsg.Text = "O modo do lançamento deve ser definido.";
                    StartComponentsScript("gerenciarTransacaoModal", rowTransacao);
                    return;
                }
                DateTime data;
                try
                {
                    data = DateTime.ParseExact(txtData.Value, @"dd/MM/yyyy", CultureInfo.GetCultureInfo("pt-BR"));
                }
                catch (Exception)
                {
                    lblMsg.Text = "A data deve ser preenchida com uma data válida (dd/mm/aaaa).";
                    StartComponentsScript("gerenciarTransacaoModal", rowTransacao);
                    return;
                }
                if (chkRepetirMes.Checked && !Int32.TryParse(txtRepetirMes.Text, out int num))
                {
                    lblMsg.Text = "O número de meses deve ser um número inteiro. Coloque um número válido ou desmarque esta opção.";
                    StartComponentsScript("gerenciarTransacaoModal", rowTransacao);
                    return;
                }

                Transacao transacao = new Transacao();
                if (!rowTransacao.IdTransacao.Equals(Guid.Empty))
                {
                    transacao = TransacaoManager.GetTransacaoById(guid);
                }
                transacao.IdUsuario    = Usuario.IdUsuario;
                transacao.IdCategoria  = Guid.Parse(txtIdCategoria.Value);
                transacao.Descricao    = txtDescricao.Value;
                transacao.TipoFluxo    = rdoReceita.Checked ? CategoriaManager.TIPO_FLUXO_RECEITA : CategoriaManager.TIPO_FLUXO_DESPESA;
                transacao.Comentario   = txtComentario.Value;
                transacao.Provisionado = rdoProvisao.Checked ? TransacaoManager.TRANSACAO_PROVISIONADA : TransacaoManager.TRANSACAO_EFETUADA;
                if (String.IsNullOrWhiteSpace(transacao.Identificacao))
                {
                    if (transacao.Provisionado == TransacaoManager.TRANSACAO_EFETUADA)
                    {
                        transacao.Valor         = valor;
                        transacao.Data          = data;
                        transacao.ValorProvisao = null;
                        transacao.DataProvisao  = null;
                    }
                    else
                    {
                        transacao.Valor         = null;
                        transacao.Data          = null;
                        transacao.ValorProvisao = valor;
                        transacao.DataProvisao  = data;
                    }
                }
                if (!transacao.IdTransacao.Equals(Guid.Empty))
                {
                    TransacaoManager.EditTransacao(transacao);
                }
                else
                {
                    TransacaoManager.AddTransacao(transacao);
                }
                if (chkRepetirMes.Checked && Int32.TryParse(txtRepetirMes.Text, out int numMeses))
                {
                    for (int i = 0; i < Math.Min(numMeses, 12); i++)
                    {
                        if (transacao.Provisionado == TransacaoManager.TRANSACAO_EFETUADA)
                        {
                            transacao.Data = transacao.Data?.AddMonths(1);
                        }
                        else
                        {
                            transacao.DataProvisao = transacao.DataProvisao?.AddMonths(1);
                        }

                        TransacaoManager.AddTransacao(transacao);
                    }
                }
                UpdateSaldoScript("gerenciarTransacaoModal", "Lançamento salvo com sucesso!");
            }
            catch (Exception ex)
            {
                switch (ex.GetType().Name)
                {
                case "TransacaoUsuarioException":
                case "TransacaoCategoriaException":
                case "TransacaoDescricaoException":
                case "TransacaoValorException":
                case "TransacaoDataException":
                case "TransacaoTipoFluxoException":
                case "TransacaoComentarioException":
                    ShowMessageErrorScript(ex.Message);
                    break;

                default:
                    ShowMessageErrorScript("Ocorreu um erro ao salvar o lançamento. Entre em contato com o administrador!");
                    break;
                }
                StartComponentsScript("gerenciarTransacaoModal", rowTransacao);
            }
        }