190 lines
7.4 KiB
PHP
190 lines
7.4 KiB
PHP
<?php
|
|
require_once __DIR__ . '/includes/db_connect.php';
|
|
|
|
session_start();
|
|
|
|
$data = $_SESSION['formdata'] ?? [];
|
|
unset($_SESSION['formdata']);
|
|
|
|
$konto_id = -1;
|
|
$monat_wert = -1;
|
|
$temp_date_gesetzt = false;
|
|
|
|
$stmt = $pdo->query("SELECT id, name
|
|
FROM zahlungsmonate
|
|
ORDER BY id ASC;");
|
|
$zahlungsmonate = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $pdo->query("SELECT id,
|
|
name,
|
|
wert
|
|
FROM monat;");
|
|
$monat = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $pdo->query("SELECT id, name
|
|
FROM zahlungstag
|
|
ORDER BY id ASC;");
|
|
$zahlungstag = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $pdo->query("SELECT id, bezeichnung
|
|
FROM konto
|
|
ORDER BY id ASC;");
|
|
$konto = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $pdo->query("SELECT EXTRACT(YEAR FROM CURRENT_DATE) - 1 AS jahr
|
|
UNION SELECT EXTRACT(YEAR FROM CURRENT_DATE)
|
|
UNION SELECT EXTRACT(YEAR FROM CURRENT_DATE) + 1;");
|
|
$jahr = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $pdo->query("SELECT monat_wert
|
|
FROM temp_daten;");
|
|
$inhalt_temp_daten = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $pdo->prepare("SELECT kf.id AS kostenfix_id,
|
|
kf.beschreibung,
|
|
kf.betrag,
|
|
zt.name AS zahlungstag,
|
|
zm.name AS zahlungsmonate,
|
|
kf.konto_id,
|
|
k.bezeichnung AS konto
|
|
FROM kostenfix kf
|
|
JOIN zahlungstag zt ON zt.id = kf.zahlungstag_id
|
|
JOIN zahlungsmonate zm ON zm.id = kf.zahlungsmonate_id
|
|
JOIN konto k ON k.id = kf.konto_id
|
|
WHERE zm.name LIKE '%' || CAST(:monat_wert AS INT) || '%'
|
|
ORDER BY kf.id ASC");
|
|
|
|
$monat_wert = $monat[0]['wert'];
|
|
|
|
if(count($inhalt_temp_daten) > 0) {
|
|
$monat_wert = $inhalt_temp_daten[0]['monat_wert'];
|
|
$temp_date_gesetzt = true;
|
|
}
|
|
|
|
$stmt->execute(['monat_wert' => $monat_wert]);
|
|
$kostenfix = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<link rel="stylesheet" href="style.css">
|
|
|
|
<script>
|
|
function aktualisiereTabelle(element) {
|
|
const monat_wert = element.value;
|
|
|
|
if (!monat_wert) return;
|
|
|
|
fetch("forms/fixkosten.php", {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
body: "fixkosten_submit=aktualisieren&monat_wert=" + encodeURIComponent(monat_wert)
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
console.log("Server-Antwort:", data.überschrift);
|
|
element.style.backgroundColor = "#d4edda";
|
|
setTimeout(() => element.style.backgroundColor = "", 800);
|
|
location.reload();
|
|
})
|
|
.catch(error => {
|
|
console.error("Fehler:", error);
|
|
element.style.backgroundColor = "#f8d7da";
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<form method="POST" action="forms/fixkosten.php">
|
|
<div class="header">
|
|
<button class="header"
|
|
id="navigationLinks"
|
|
name="fixkosten_submit"
|
|
value="zuKontobewegung"
|
|
type="submit">
|
|
<span>hinzufügen</span>
|
|
</button>
|
|
<a href="fixkosten.php"
|
|
class="header"
|
|
id="navigationRechts">
|
|
abbrechen
|
|
</a>
|
|
</div>
|
|
<div class="inhalt">
|
|
<div class="umsatz_div" id="umsatz_links">
|
|
<p class="ausgabe" id="umsatz_p">
|
|
Fixkosten für Monat
|
|
</p>
|
|
</div>
|
|
<div class="umsatz_div" id="umsatz_rechts">
|
|
<select name="monat_id" class="fix_select" onchange="aktualisiereTabelle(this)">
|
|
<?php foreach ($monat as $y): ?>
|
|
<option value="<?= htmlspecialchars($y['id']) ?>"
|
|
<?php
|
|
if($temp_date_gesetzt) {
|
|
if($y['wert'] == $monat_wert) echo 'selected';
|
|
} else {
|
|
if($y['wert'] == date('m')) echo 'selected';
|
|
}
|
|
?>>
|
|
<?= htmlspecialchars($y['name']) ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="umsatz_div" id="umsatz_links">
|
|
<p class="ausgabe" id="umsatz_p">
|
|
Fixkosten für Jahr
|
|
</p>
|
|
</div>
|
|
<div class="umsatz_div" id="umsatz_rechts">
|
|
<select name="jahr" class="fix_select">
|
|
<?php foreach ($jahr as $y): ?>
|
|
<option value="<?= htmlspecialchars($y['jahr']) ?>" <?php if($y['jahr'] == date('Y')) echo 'selected';?>>
|
|
<?= htmlspecialchars($y['jahr']) ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
<table>
|
|
<tr>
|
|
<th id="th_gebucht">Zyklus</th>
|
|
<th id="th_ausgegeben">Tag</th>
|
|
<th id="th_beschreibung">Beschreibung</th>
|
|
<th id="th_betrag">Betrag</th>
|
|
<th id="th_konto">Konto</th>
|
|
</tr>
|
|
<?php foreach ($kostenfix as $y): ?>
|
|
<tr>
|
|
<td class="td_text">
|
|
<?= htmlspecialchars($y['zahlungsmonate']) ?>
|
|
</td>
|
|
<td class="td_text">
|
|
<?= htmlspecialchars($y['zahlungstag']) ?>
|
|
</td>
|
|
<td class="td_text">
|
|
<?= htmlspecialchars($y['beschreibung']) ?>
|
|
</td>
|
|
<td class="<?= $y['betrag'] < 0 ? 'td_zahl_neg' : 'td_zahl_pos' ?>">
|
|
<?= number_format($y['betrag'], 2, ",", ".") ?> €
|
|
</td>
|
|
<td class="td_text">
|
|
<?= htmlspecialchars($y['konto']) ?>
|
|
</td>
|
|
|
|
<form id="hiddenFormÄndereFix" method="post" action="fix_edit.php">
|
|
<input id="hiddenInputÄndereFixKostenvariabelID" type="hidden" name="kostenfix_id">
|
|
<input id="hiddenInputEditTyp" type="hidden" name="editTyp" value="edit">
|
|
</form>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
|
|
</html>
|