Introdução

Cai na besteira de tomar conta de um futebol.

Como toda semana eu tenho que atualizar o caixa, acho que vai ser mais fácil fazer assim.

O resumo: temos R$ 215 de caixa ao fim de março de 2025.

library(ggplot2)
library(stringr)
library(dplyr)
library(readxl)
library(tidyr)
library(readr)
library(lubridate)

Fevereiro de 2025

Teve uma pelada só, o saldo foi de R$ 40.

Março de 2025

Importar meu extrato

marco2025 <- read_excel("Extrato conta corrente - 032025.xlsx")

Paguei

paguei <- marco2025 %>% filter(`Tipo Lançamento`=="Saída") %>% filter(str_detect(Detalhes, "(?i)Luana|Prince"))
print(paguei)
## # A tibble: 5 × 6
##   Data       Lançamento    Detalhes       `N° documento` Valor `Tipo Lançamento`
##   <chr>      <chr>         <chr>          <chr>          <chr> <chr>            
## 1 06/03/2025 Pix - Enviado 06/03 21:06 P… 30602          -100… Saída            
## 2 10/03/2025 Pix - Enviado 08/03 17:24 L… 31002          -100… Saída            
## 3 17/03/2025 Pix - Enviado 15/03 18:46 L… 31701          -130… Saída            
## 4 24/03/2025 Pix - Enviado 22/03 18:58 L… 32401          -125… Saída            
## 5 31/03/2025 Pix - Enviado 29/03 12:39 L… 33102          -100… Saída
paguei <- paguei %>% select(Detalhes, Valor, Data)

print(paguei)
## # A tibble: 5 × 3
##   Detalhes                               Valor   Data      
##   <chr>                                  <chr>   <chr>     
## 1 06/03 21:06 Prince De Macedo Barros    -100,00 06/03/2025
## 2 08/03 17:24 Luana Ferreira Rodrigues Z -100,00 10/03/2025
## 3 15/03 18:46 Luana Ferreira Rodrigues Z -130,00 17/03/2025
## 4 22/03 18:58 Luana Ferreira Rodrigues Z -125,00 24/03/2025
## 5 29/03 12:39 Luana Ferreira Rodrigues Z -100,00 31/03/2025
paguei <- paguei %>%
  mutate(
    Data = as.Date(Data, format = "%d/%m/%Y"),
    Valor = abs(parse_number(gsub("\\.", "", Valor), locale = locale(decimal_mark = ",")))
  )
sum(paguei$Valor)
## [1] 555

O valor pago foi de R$ 555,00. Os 100 pra Prince foi pelo dia que ele que pagou a pelada, obrigado!

Recebi

# Passo 1: Substituir vírgula por ponto e remover pontos de milhar
marco2025$Valor <- gsub("\\.", "", marco2025$Valor)  # Remove pontos (milhar)
marco2025$Valor <- gsub(",", ".", marco2025$Valor)   # Troca vírgula por ponto (decimal)

# Passo 2: Remover o sinal de negativo (se houver)
marco2025$Valor <- gsub("-", "", marco2025$Valor)   # Remove "-"

# Passo 3: Converter para numérico
marco2025$Valor <- as.numeric(marco2025$Valor)

# Verificar o resultado
print(head(marco2025$Valor))
## [1]  1577.96 11936.03  1100.00  1000.00    10.00    20.00
recebi <- marco2025 %>% filter(Valor<70) %>% filter(`Tipo Lançamento`== "Entrada")
print(recebi)
## # A tibble: 57 × 6
##    Data       Lançamento     Detalhes     `N° documento` Valor `Tipo Lançamento`
##    <chr>      <chr>          <chr>        <chr>          <dbl> <chr>            
##  1 05/03/2025 Pix - Recebido 01/03 15:10… 11510299897552    10 Entrada          
##  2 05/03/2025 Pix - Recebido 01/03 15:12… 11512216221572    20 Entrada          
##  3 05/03/2025 Pix - Recebido 01/03 15:14… 11514035036922    10 Entrada          
##  4 05/03/2025 Pix - Recebido 01/03 15:56… 11556208039852    10 Entrada          
##  5 05/03/2025 Pix - Recebido 01/03 15:22… 4085337012338…    10 Entrada          
##  6 05/03/2025 Pix - Recebido 01/03 15:43… 4085458612180…    10 Entrada          
##  7 05/03/2025 Pix - Recebido 01/03 15:45… 4085474321422…    10 Entrada          
##  8 05/03/2025 Pix - Recebido 01/03 16:06… 4085599907944…    10 Entrada          
##  9 05/03/2025 Pix - Recebido 01/03 16:23… 4085701179180…    10 Entrada          
## 10 05/03/2025 Pix - Recebido 01/03 16:32… 4085753042834…    30 Entrada          
## # ℹ 47 more rows
recebi$date <- as.Date(recebi$Data, format = "%d/%m/%Y")
sum(recebi$Valor)
## [1] 700

O valor recebido na conta foi de R$ 700, mas eu joguei 3x, o que dá um total de R$ 730.

O resumo do mês é que temos R$730 - R$555 = R$ 175 de caixa em março.

E tinha o saldo de R$ 40 da pelada que teve em fevereiro, dá um total de R$ 175 + R$ 40 = R$ 215.

Abril de 2025

A gente começou esse mês com saldo de R$215 do mês passado.

abril2025 <- read_excel("Extrato conta corrente - 042025.xlsx")
paguei_abril <- abril2025 %>% 
  filter(`Tipo Lançamento` == "Saída") %>% 
  filter(str_detect(Detalhes, "(?i)Luana|Prince")) %>%
  select(Detalhes, Valor, Data)

print(paguei_abril)
## # A tibble: 3 × 3
##   Detalhes                               Valor   Data      
##   <chr>                                  <chr>   <chr>     
## 1 05/04 18:31 Luana Ferreira Rodrigues Z -100,00 07/04/2025
## 2 05/04 18:36 Luana Ferreira Rodrigues Z -25,00  07/04/2025
## 3 12/04 17:27 Luana Ferreira Rodrigues Z -300,00 14/04/2025
abril2025$Valor <- gsub("\\.", "", abril2025$Valor)
abril2025$Valor <- gsub(",", ".", abril2025$Valor)
abril2025$Valor <- gsub("-", "", abril2025$Valor)
abril2025$Valor <- as.numeric(abril2025$Valor)

recebi_abril <- abril2025 %>% 
  filter(Valor < 70) %>% 
  filter(`Tipo Lançamento` == "Entrada") %>% 
  filter(!str_detect(Detalhes, "(?i)Andrey"))  # Exclui entradas com "Andrey" (case insensitive)

recebi_abril$date <- as.Date(recebi_abril$Data, format = "%d/%m/%Y")
total_recebido_abril <- sum(recebi_abril$Valor)

print(recebi_abril)
## # A tibble: 34 × 7
##    Data    Lançamento Detalhes `N° documento` Valor `Tipo Lançamento` date      
##    <chr>   <chr>      <chr>    <chr>          <dbl> <chr>             <date>    
##  1 04/04/… Pix - Rec… 04/04 0… 4377095124258…    10 Entrada           2025-04-04
##  2 07/04/… Pix - Rec… 05/04 1… 51523136707062    10 Entrada           2025-04-07
##  3 07/04/… Pix - Rec… 05/04 1… 51638096653182    10 Entrada           2025-04-07
##  4 07/04/… Pix - Rec… 05/04 1… 51645569964092    10 Entrada           2025-04-07
##  5 07/04/… Pix - Rec… 05/04 1… 51715348621782    10 Entrada           2025-04-07
##  6 07/04/… Pix - Rec… 05/04 1… 51858409654702    10 Entrada           2025-04-07
##  7 07/04/… Pix - Rec… 05/04 1… 4387362573589…    10 Entrada           2025-04-07
##  8 07/04/… Pix - Rec… 05/04 1… 4387379124025…    20 Entrada           2025-04-07
##  9 07/04/… Pix - Rec… 05/04 1… 4387657210826…    10 Entrada           2025-04-07
## 10 07/04/… Pix - Rec… 05/04 1… 4388010537655…    10 Entrada           2025-04-07
## # ℹ 24 more rows
print(total_recebido_abril)
## [1] 380

Então, em abril a gente pagou 425 e recebi 380. Como joguei 2 peladas, são 20.
Ou seja, a gente pagou 425 e recebeu 400. Logo, tem que descontar 25 do que tinha de caixa.

O caixa está em 190 ao final de abril de 2025.

Maio

Pagamentos feitos em maio.

maio2025 <- read_excel("Extrato conta corrente - 052025.xlsx")
paguei_maio <- maio2025 %>% 
  filter(`Tipo Lançamento` == "Saída") %>% 
  filter(str_detect(Detalhes, "(?i)Luana")) %>%
  select(Detalhes, Valor, Data)

print(paguei_maio)
## # A tibble: 2 × 3
##   Detalhes                               Valor   Data      
##   <chr>                                  <chr>   <chr>     
## 1 03/05 18:51 Luana Ferreira Rodrigues Z -400,00 05/05/2025
## 2 05/05 09:21 Luana Ferreira Rodrigues Z -60,00  05/05/2025

Então a gente tem R$ 460 de pagamentos feitos.

maio2025$Valor <- gsub("\\.", "", maio2025$Valor)
maio2025$Valor <- gsub(",", ".", maio2025$Valor)
maio2025$Valor <- gsub("-", "", maio2025$Valor)
maio2025$Valor <- as.numeric(maio2025$Valor)

recebi_maio <- maio2025 %>% 
  filter(Valor < 70) %>% 
  filter(`Tipo Lançamento` == "Entrada") %>% 
  filter(!str_detect(Detalhes, "(?i)Andrey"))  # Exclui entradas com "Andrey" (case insensitive)

recebi_maio$date <- as.Date(recebi_maio$Data, format = "%d/%m/%Y")
total_recebido_maio <- sum(recebi_maio$Valor)

print(recebi_maio)
## # A tibble: 50 × 7
##    Data    Lançamento Detalhes `N° documento` Valor `Tipo Lançamento` date      
##    <chr>   <chr>      <chr>    <chr>          <dbl> <chr>             <date>    
##  1 05/05/… Pix - Rec… 03/05 0… 30831028263352    10 Entrada           2025-05-05
##  2 05/05/… Pix - Rec… 03/05 0… 30848112912262    10 Entrada           2025-05-05
##  3 05/05/… Pix - Rec… 03/05 1… 31126421874942    20 Entrada           2025-05-05
##  4 05/05/… Pix - Rec… 03/05 1… 31518374072432    10 Entrada           2025-05-05
##  5 05/05/… Pix - Rec… 03/05 1… 31518446142812    10 Entrada           2025-05-05
##  6 05/05/… Pix - Rec… 03/05 1… 31646296772672    10 Entrada           2025-05-05
##  7 05/05/… Pix - Rec… 03/05 1… 31659352419192    10 Entrada           2025-05-05
##  8 05/05/… Pix - Rec… 03/05 0… 4627167740287…    10 Entrada           2025-05-05
##  9 05/05/… Pix - Rec… 03/05 1… 4628062748423…    10 Entrada           2025-05-05
## 10 05/05/… Pix - Rec… 03/05 1… 4628259139417…    10 Entrada           2025-05-05
## # ℹ 40 more rows
print(total_recebido_maio)
## [1] 540

Desses R$ 540 a gente tem que somar R$ 30 que recebi em cash e somar os meus pagamentos (R$ 40). O que somam R$ 610, retirando os R$ 460 de pagamentos, maio teve superávit de R$ 150. Com os R$ 190 que tinhamos em caixa, dá R$ 340 de caixa.

Gráfico da evolução.

# Criar dataframe com a evolução do caixa
evolucao_caixa <- data.frame(
  Mes = c("Fevereiro", "Março", "Abril", "Maio"),
  Caixa = c(40, 215, 190, 340),
  stringsAsFactors = FALSE
)

# Converter meses para fator (para manter ordem cronológica)
evolucao_caixa$Mes <- factor(evolucao_caixa$Mes, 
                            levels = c("Fevereiro", "Março", "Abril", "Maio"))

# Criar gráfico de linha
ggplot(evolucao_caixa, aes(x = Mes, y = Caixa, group = 1)) +
  geom_line(color = "steelblue", size = 1.5) +
  geom_point(color = "steelblue", size = 3) +
  geom_text(aes(label = paste0("R$", Caixa)), vjust = -1.5, size = 4) +
  labs(title = "Evolução do Caixa do Futebol (2025)",
       x = "Mês",
       y = "Saldo em R$") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.line = element_line(color = "black")) +
  scale_y_continuous(limits = c(0, max(evolucao_caixa$Caixa) * 1.1))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.