add analysis scripts

This commit is contained in:
2022-09-18 20:15:16 +02:00
parent 69005569aa
commit 10b7f89831
5 changed files with 305 additions and 0 deletions

1
.gitignore vendored
View File

@ -12,3 +12,4 @@ cli/*.log
cli/*.pdf
cli/*.aux
.DS_Store
.Rproj.user

View File

@ -0,0 +1,105 @@
source("~/.active-rstudio-document")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
View(amounts)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
View(amounts)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
print(amounts)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
print(amounts)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
print(amounts)
print(amounts, digits=2)
print(amounts, width=100)
print(amounts, width=10)
print(amounts, width=100)
print(amounts, digits=10)
options(pillar.sigfig=7)
print(amounts)
options(pillar.sigfig=10)
print(amounts)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
library(tidyverse)
flextable::flextable
library(table)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
sum(amounts$fee)
sum(amounts$fee) + sum(amounts$overhead)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
sum(amounts$Betriebskosten)
sum(amounts$Betriebskosten, na.rm = TRUE)
sum(amounts$Betriebskosten, na.rm = FALSE)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
sum(amounts$Betriebskosten)
sum(amounts$Betriebskosten, na.rm = T)
sum(amounts$Betriebskosten, na.omit())
sum(amounts$Betriebskosten
)
sum(amounts$Betriebskosten)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
amounts$Betriebskosten
amounts$Betriebskosten[is.na(.)]
amounts$Betriebskosten[is.na()]
amounts$Betriebskosten[NA]
amounts$Betriebskosten[1]
amounts$Betriebskosten[is.na()]
amounts$Betriebskosten[is.na]
d <- amounts$Betriebskosten
d
d[is.na(d)]
d[is.na(d)] <- 0
d
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
View(expense)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
expense
expense[overhead_relevant==T]
expense[expense$overhead_relevant == T]
expense[expense$overhead_relevant == TRUE]
expense[expense$overhead_relevant]
expense %>% filter(overhead_relevant == TRUE)
source("~/Workspace/hv2-all-in-one/r-scripts/hv2-analysis/income.R")
View(expense)

View File

@ -0,0 +1,13 @@
Version: 1.0
RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8
RnwWeave: Sweave
LaTeX: pdfLaTeX

View File

@ -0,0 +1,118 @@
library(tidyverse, warn.conflicts = FALSE)
library(DBI, warn.conflicts = FALSE)
library(tidyr, warn.conflicts = FALSE)
library(dplyr, warn.conflicts = FALSE)
# library(lubridate, warn.conflicts = FALSE)
# library(R.utils, warn.conflicts = FALSE)
YEAR <- 2021
HOME <- Sys.getenv("HOME")
Sys.setenv(PGHOST = "db.mainscnt.eu",
PGDATABASE = "hv2",
PGPORT = 5432,
PGUSER = "wn",
PGSSLMODE = "verify-ca",
PGSSLKEY = paste(HOME, "/keys/psql/wn-postgresql-client-2.key", sep=""),
PGSSLCERT = paste(HOME, "/keys/psql/wn-postgresql-client-2.crt", sep=""),
PGSSLROOTCERT = paste(HOME, "/keys/psql/postgres-ca.crt", sep=""))
con <- dbConnect(RPostgres::Postgres())
res <- dbSendQuery(con, "
select f.description as flat,
p.description as premise,
aec.description as category,
sum(ae.amount) as amount
from flat_t f,
premise_t p,
tenancy_t ty,
tenant_t t,
account_t a,
account_entry_t ae,
account_entry_category_t aec
where p.id = f.premise and
ty.flat = f.id and
ty.tenant = t.id and
a.id = t.account and
ae.account = a.id and
aec.id = ae.account_entry_category and
ae.fiscal_year = $1 and
aec.description in ('Mietzahlung', 'Mietforderung', 'Betriebskostenforderung', 'Betriebskostenausgleich')
group by p.description,
f.description,
aec.description;
")
dbBind(res, list(YEAR))
income <- dbFetch(res)
dbClearResult(res)
income <- income %>%
pivot_wider(names_from = category, values_from = amount) %>%
mutate(Miete := -1 * Mietforderung) %>%
mutate(Betriebskosten := Mietzahlung - Miete + Betriebskostenausgleich) %>%
select(flat, premise, Miete, Betriebskosten) %>%
arrange(premise, flat) %>%
mutate(across(where(is.numeric), ~num(., digits=2))) %>%
mutate(across(where(is.numeric), ~replace(., is.na(.), 0)))
total_fee <- sum(income$Miete)
total_overhead <- sum(income$Betriebskosten)
total_income <- total_fee + total_overhead
res <- dbSendQuery(con, "
select aec.overhead_relevant as overhead_relevant,
aec.description as category,
sum(ae.amount) as amount
from account_entry_category_t aec,
account_entry_t ae
where aec.id = ae.account_entry_category and
aec.id not in (2, 3, 4, 29) and
ae.fiscal_year = $1
group by aec.overhead_relevant,
aec.description
")
dbBind(res, list(YEAR))
expense <- dbFetch(res)
dbClearResult(res)
expense <- expense %>%
arrange(overhead_relevant, category) #%>%
#mutate(across(where(is.numeric), ~num(., digits=2))) #%>%
#mutate(across(where(is.numeric), ~replace(., is.na(.), 0)))
total_expense <- sum(expense$amount)
overhead_relevant_expense <- expense %>%
filter(overhead_relevant == TRUE)
total_overhead_relevant_expense <- sum(overhead_relevant_expense$amount)
print("Einkuenfte pro Wohnung")
print(income)
print("Einkuenfte Miete")
print(total_fee)
print("Einkuenfte Betriebskosten")
print(total_overhead)
print("Einkuenfte Total")
print(total_income)
print("Ausgaben")
print(expense)
print(total_expense)
print("davon betriebskosten-relevant")
print(total_overhead_relevant_expense)
profit <- total_income + total_expense
print("Überschuss")
print(profit)

View File

@ -21,3 +21,71 @@ create or replace view account_statement_v as
grant select on account_statement_v to hv2;
create or replace view income_v as
select f.description as flat,
p.description as premise,
ae.amount as amount,
ty.id as tenancy_id,
t.lastname as tenant
from flat_t f,
premise_t p,
tenancy_t ty,
tenant_t t,
account_entry_t ae,
account_entry_category_t aec
where p.id = f.premise and
f.id = ty.flat and
t.id = ty.tenant and
ae.id = t.account and
aec.id = ae.account_entry_category and
aec.description = 'Mietzahlung' and
ae.fiscal_year = 2021
;
select f.description as flat,
p.description as premise,
--ty.id as tenancy_id,
--t.lastname || ', ' || t.firstname as tenant,
--a.description as account,
aec.description as category,
sum(ae.amount) as amount
from flat_t f,
premise_t p,
tenancy_t ty,
tenant_t t,
account_t a,
account_entry_t ae,
account_entry_category_t aec
where p.id = f.premise and
ty.flat = f.id and
ty.tenant = t.id and
a.id = t.account and
ae.account = a.id and
aec.id = ae.account_entry_category and
ae.fiscal_year = 2021 and
aec.description in ('Mietzahlung', 'Mietforderung', 'Betriebskostenforderung')
group by p.description,
f.description,
aec.description
;
select aec.overhead_relevant as overhead_relevant,
aec.description as category,
sum(ae.amount) as amount
from account_entry_category_t aec,
account_entry_t ae
where aec.id = ae.account_entry_category and
aec.id not in (2, 3, 4, 29) and
ae.fiscal_year = 2021
group by aec.overhead_relevant,
aec.description;