Hibiscus Transfer eingerichtet

This commit is contained in:
2026-05-13 09:59:01 +02:00
parent e27ee5fd0b
commit e28c8b6a9c
4 changed files with 68 additions and 17 deletions
+1
View File
@@ -27,3 +27,4 @@ resolve_contact <- function(conn, empfaenger_name, empfaenger_konto) {
collect() collect()
if (nrow(bc) > 0) bc$contact_id[1] else NA_integer_ if (nrow(bc) > 0) bc$contact_id[1] else NA_integer_
} }
+36
View File
@@ -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)
}
+29 -15
View File
@@ -329,7 +329,7 @@ if(ok){
## * Umsatz-Tabelle ---- ## * Umsatz-Tabelle ----
if(F){ if(ok){
exec_sql("CREATE TABLE hibiscus_transactions ( exec_sql("CREATE TABLE hibiscus_transactions (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
konto_id INTEGER, konto_id INTEGER,
@@ -347,20 +347,35 @@ if(F){
art TEXT, art TEXT,
customerref TEXT, customerref TEXT,
kommentar TEXT, kommentar TEXT,
checksum REAL,
umsatztyp_id INTEGER,
flags REAL,
gvcode INTEGER,
addkey INTEGER,
txid TEXT,
purposecode TEXT,
endtoendid TEXT, endtoendid TEXT,
mandateid TEXT, mandateid TEXT,
empfaenger_name2 TEXT, empfaenger_name2 TEXT
creditorid TEXT
);") );")
daten_hibiscus <- sync_hibiscus() %>%
ok <- NA 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) error_f <- fehler_add("Die Tabelle der Umsätze (Hibiscus) wurde erstellt", ok, error_f)
} ## ------------------------------------------------------- 2026-05-12 17:05 } ## ------------------------------------------------------- 2026-05-12 17:05
@@ -405,7 +420,7 @@ if(ok){
} ## ------------------------------------------------------- 2026-05-12 17:07 } ## ------------------------------------------------------- 2026-05-12 17:07
## * Projekct - Tabelle ---- ## * Projekt - Tabelle ----
if(ok){ if(ok){
exec_sql("CREATE TABLE projects ( exec_sql("CREATE TABLE projects (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -451,7 +466,7 @@ if(ok){
zielname <- eintraege$zielname[ind] zielname <- eintraege$zielname[ind]
if( file.exists(herkunft) ){ if( file.exists(herkunft) ){
cat(ind, " von ", anz, "\n") # cat(ind, " von ", anz, "\n")
file.copy( file.copy(
from = herkunft, from = herkunft,
to = zielname, to = zielname,
@@ -461,7 +476,6 @@ if(ok){
# Check # Check
neue_dateien <- list.files("~/Documents/workspace/gemfin-shiny/www/documents/") neue_dateien <- list.files("~/Documents/workspace/gemfin-shiny/www/documents/")
length(neue_dateien) length(neue_dateien)
length(eintraege) length(eintraege)
nv <- att[-which(eintraege %in% neue_dateien),] nv <- att[-which(eintraege %in% neue_dateien),]
error_f <- fehler_add("Alle Dateien übertragen", nrow(nv) == 0, error_f) error_f <- fehler_add("Alle Dateien übertragen", nrow(nv) == 0, error_f)
Binary file not shown.