true, 'monat_wert' => $monat_wert]); exit; } if($returnOfFunction > 0) { $fehler[] = "Fehler bei Datenbankoperation"; $_SESSION['errors'] = $fehler; $_SESSION['formdata'] = $_POST; } header("Location: /../fixkosten.php"); //header("Location: /../fix_zuKontobewegung.php"); exit; function insertFixkosten($para_pdo, $para_zahlungsmonate_id, $para_zahlungstag_id, $para_konto_id, $para_beschreibung, $para_betrag) { try { $para_pdo->beginTransaction(); $stmt = $para_pdo->prepare("INSERT INTO kostenfix (zahlungsmonate_id, zahlungstag_id, konto_id, beschreibung, betrag) VALUES (:zahlungsmonate_id, :zahlungstag_id, :konto_id, :beschreibung, :betrag);"); $stmt->execute(['zahlungsmonate_id' => $para_zahlungsmonate_id, 'zahlungstag_id' => $para_zahlungstag_id, 'konto_id' => $para_konto_id, 'beschreibung' => $para_beschreibung, 'betrag' => $para_betrag]); $para_pdo->commit(); return 0; } catch(Exception $e) { $para_pdo->rollBack(); echo "Fehler: " . $e->getMessage(); return 1; } } function updateFixkosten($para_pdo, $para_kostenfix_id, $para_zahlungsmonate_id, $para_zahlungstag_id, $para_konto_id, $para_beschreibung, $para_betrag) { try { $para_pdo->beginTransaction(); $stmt = $para_pdo->prepare("UPDATE kostenfix SET zahlungstag_id = :zahlungstag_id, zahlungsmonate_id = :zahlungsmonate_id, beschreibung = :beschreibung, konto_id = :konto_id, betrag = :betrag WHERE id = :kostenfix_id;"); $stmt->execute(['zahlungstag_id' => $para_zahlungstag_id, 'zahlungsmonate_id' => $para_zahlungsmonate_id, 'beschreibung' => $para_beschreibung, 'konto_id' => $para_konto_id, 'betrag' => $para_betrag, 'kostenfix_id' => $para_kostenfix_id]); $para_pdo->commit(); return 0; } catch(Exception $e) { $para_pdo->rollBack(); echo "Fehler: " . $e->getMessage(); return 1; } } function removeFixkosten($para_pdo, $para_kostenfix_id, ) { try { $para_pdo->beginTransaction(); $stmt = $para_pdo->prepare("UPDATE kontobewegung SET kostenfix_id = NULL WHERE kostenfix_id = :kostenfix_id;"); $stmt->execute(['kostenfix_id' => $para_kostenfix_id]); $stmt = $para_pdo->prepare("DELETE FROM kostenfix WHERE id = :kostenfix_id"); $stmt->execute(['kostenfix_id' => $para_kostenfix_id]); $para_pdo->commit(); return 0; } catch(Exception $e) { $para_pdo->rollBack(); echo "Fehler: " . $e->getMessage(); return 1; } } function fixkostenZuKontobewegung($para_pdo, $para_monat_id, $para_jahr) { try { $para_pdo->beginTransaction(); $stmt = $para_pdo->prepare("SELECT wert FROM monat WHERE id = :monat_id;"); $stmt->execute([':monat_id' => $para_monat_id]); $monat_wert = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = $para_pdo->prepare("INSERT INTO kontobewegung (konto_id, betrag, beschreibung, datum_ausgegeben, kostenfix_id, datum_fixkosten_uebernommen) SELECT kf.konto_id, kf.betrag, kf.beschreibung, TO_DATE(:jahr || '-' || :monat_wert || '-' || zt.name, 'YYYY-MM-DD'), kf.id, CURRENT_DATE FROM kostenfix kf JOIN zahlungstag zt ON zt.id = kf.zahlungstag_id JOIN zahlungsmonate zm ON zm.id = kf.zahlungsmonate_id WHERE zm.name LIKE '%' || CAST(:monat_wert AS INT) || '%' AND NOT EXISTS (SELECT * FROM kontobewegung kb_inner WHERE kb_inner.kostenfix_id = kf.id AND EXTRACT(MONTH FROM kb_inner.datum_ausgegeben) = CAST(:monat_wert AS INT) AND EXTRACT(YEAR FROM kb_inner.datum_ausgegeben) = CAST(:jahr AS INT));"); $stmt->execute(['monat_wert' => $monat_wert[0]['wert'], 'jahr' => $para_jahr]); $para_pdo->commit(); return 0; } catch(Exception $e) { $para_pdo->rollBack(); echo "Fehler: " . $e->getMessage(); return 1; } } function aktualisiereTempTabelle($para_pdo, $para_monat_wert) { try { $para_pdo->beginTransaction(); $para_pdo->query("DELETE FROM temp_daten;"); $stmt = $para_pdo->prepare("INSERT INTO temp_daten(monat_wert) VALUES(:monat_wert);"); $stmt->execute(['monat_wert' => $para_monat_wert]); $para_pdo->commit(); return 0; } catch(Exception $e) { $para_pdo->rollBack(); echo "Fehler: " . $e->getMessage(); return 1; } } function leereTempTabelle($para_pdo) { try { $para_pdo->beginTransaction(); $para_pdo->query("DELETE FROM temp_daten;"); $para_pdo->commit(); return 0; } catch(Exception $e) { $para_pdo->rollBack(); echo "Fehler: " . $e->getMessage(); return 1; } } ?>