diff --git a/R/umsatz/bank_connections.R b/R/umsatz/bank_connections.R index 64cfd27..d4fede3 100755 --- a/R/umsatz/bank_connections.R +++ b/R/umsatz/bank_connections.R @@ -26,4 +26,5 @@ resolve_contact <- function(conn, empfaenger_name, empfaenger_konto) { select(contact_id) %>% collect() if (nrow(bc) > 0) bc$contact_id[1] else NA_integer_ -} \ No newline at end of file +} + diff --git a/R/umsatz/sync_hibiscus.R b/R/umsatz/sync_hibiscus.R new file mode 100644 index 0000000..b27ec1d --- /dev/null +++ b/R/umsatz/sync_hibiscus.R @@ -0,0 +1,36 @@ +## +## Datum : 2026-05-13_09-37 +## Name : Christian Oswald +## Datei : sync_hibiscus.R +## Projekt : gemfin-shiny +## Kommentar: Liest Daten aus der Hibiscus Datenbank +## + +## * Initialisierung ---- + +sync_hibiscus <- function(){ + if (as.character(Sys.info())[1] == "Linux") { + jdbc_url <- "jdbc:h2:/home/cosw/.jameica/hibiscus/h2db/hibiscus;IFEXISTS=TRUE;CIPHER=AES" + pw <- "LsOX6Ytldl4lJBcVoA6j+MDLzaA= LsOX6Ytldl4lJBcVoA6j+MDLzaA=" + } + + if(as.character(Sys.info())[1] == "Windows"){ + source("c:/Users/chris/R/rfunc/fehler_add.R") + url <- "jdbc:h2:~/Insync/Projekte/Gemeindefinanzen/jameica/hibiscus/h2db/hibiscus;IFEXISTS=TRUE;CIPHER=AES" + h2jar <- "C:/Users/chris/bin/jameica/lib/h2/migration-h2/disabled/h2-1.4.199.jar" + } + # JDBC - Verbindung ---- + if (as.character(Sys.info())[1] == "Darwin") { + source("/Users/cosw/R/rfunc/fehler_add.R") + h2jar <- "/Users/cosw/bin/jameica.app/lib/h2/migration-h2/disabled/h2-1.4.199.jar" + url <- "jdbc:h2:/Users/cosw/insync/Projekte/Gemeindefinanzen/jameica/hibiscus/h2db/hibiscus;IFEXISTS=TRUE;CIPHER=AES" + } + user <- "hibiscus" + pw <- "FbvGoL+yJlH1GtUojnC8ZajYuTA= FbvGoL+yJlH1GtUojnC8ZajYuTA=" + drv <- JDBC("org.h2.Driver", h2jar, identifier.quote="`") + + con_j <- dbConnect(drv, url, user, pw) + originaldaten <- dbReadTable(con_j, "UMSATZ") + dbDisconnect(con_j) + return(originaldaten) +} diff --git a/db/data_transfer.R b/db/data_transfer.R index cbad19f..0b7471c 100755 --- a/db/data_transfer.R +++ b/db/data_transfer.R @@ -329,7 +329,7 @@ if(ok){ ## * Umsatz-Tabelle ---- -if(F){ +if(ok){ exec_sql("CREATE TABLE hibiscus_transactions ( id INTEGER PRIMARY KEY, konto_id INTEGER, @@ -347,20 +347,35 @@ if(F){ art TEXT, customerref TEXT, kommentar TEXT, - checksum REAL, - umsatztyp_id INTEGER, - flags REAL, - gvcode INTEGER, - addkey INTEGER, - txid TEXT, - purposecode TEXT, endtoendid TEXT, mandateid TEXT, - empfaenger_name2 TEXT, - creditorid TEXT + empfaenger_name2 TEXT );") - - ok <- NA + daten_hibiscus <- sync_hibiscus() %>% + transmute( + id = as.integer(ID), + konto_id = as.integer(KONTO_ID), + empfaenger_konto = EMPFAENGER_KONTO, + empfaenger_blz = EMPFAENGER_BLZ, + empfaenger_name = EMPFAENGER_NAME, + betrag = as.numeric(BETRAG), + zweck =ZWECK, + zweck2 =ZWECK2, + zweck3 =ZWECK3, + datum =as.character(DATUM), + valuta = as.character(VALUTA), + saldo = SALDO, + primanota = PRIMANOTA, + art =ART, + customerref =CUSTOMERREF, + kommentar = KOMMENTAR, + endtoendid = ENDTOENDID, + mandateid = MANDATEID, + empfaenger_name2 =EMPFAENGER_NAME2 + ) + dbWriteTable(con_s, "hibiscus_transactions", daten_hibiscus, append = T) + anz <- dbxSelect(con_s, "select count(id) FROM hibiscus_transactions") %>% pull + ok <- nrow(daten_hibiscus) == anz error_f <- fehler_add("Die Tabelle der Umsätze (Hibiscus) wurde erstellt", ok, error_f) } ## ------------------------------------------------------- 2026-05-12 17:05 @@ -405,7 +420,7 @@ if(ok){ } ## ------------------------------------------------------- 2026-05-12 17:07 -## * Projekct - Tabelle ---- +## * Projekt - Tabelle ---- if(ok){ exec_sql("CREATE TABLE projects ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -444,14 +459,14 @@ if(ok){ mutate( ext = file_ext(original_name), zielname = paste0(zielpfad, id, ".", ext) - ) + ) anz <- nrow(eintraege) for(ind in 1:nrow(eintraege)){ herkunft <- paste0(pfad, eintraege$original_name[ind]) zielname <- eintraege$zielname[ind] if( file.exists(herkunft) ){ - cat(ind, " von ", anz, "\n") + # cat(ind, " von ", anz, "\n") file.copy( from = herkunft, to = zielname, @@ -461,7 +476,6 @@ if(ok){ # Check neue_dateien <- list.files("~/Documents/workspace/gemfin-shiny/www/documents/") length(neue_dateien) - length(eintraege) nv <- att[-which(eintraege %in% neue_dateien),] error_f <- fehler_add("Alle Dateien übertragen", nrow(nv) == 0, error_f) diff --git a/db/development.sqlite b/db/development.sqlite index abb6a35..e631ccf 100644 Binary files a/db/development.sqlite and b/db/development.sqlite differ