diff --git a/src/Controllers/BankController.php b/src/Controllers/BankController.php index d39dcb8..d79b848 100644 --- a/src/Controllers/BankController.php +++ b/src/Controllers/BankController.php @@ -207,11 +207,14 @@ class BankController public function unlinkBeleg(array $params): void { - $id = (int)($params['id'] ?? 0); - $belegId = (int)($_POST['beleg_id'] ?? 0); + $id = (int)($params['id'] ?? 0); + $belegId = (int)($_POST['beleg_id'] ?? 0); + $redirectTo = $_POST['redirect_to'] ?? ''; BankTransaction::unlinkBeleg($id, $belegId); - View::redirect("/bank/$id", 'Beleg-Verknüpfung entfernt.'); + + $safe = (preg_match('#^/[a-zA-Z0-9/_-]#', $redirectTo)) ? $redirectTo : "/bank/$id"; + View::redirect($safe, 'Beleg-Verknüpfung entfernt.'); } public function uploadBeleg(array $params): void @@ -263,9 +266,7 @@ class BankController 'belegtyp' => (float)$transaction['wert'] >= 0 ? 'Ausgangsrechnung' : 'Eingangsrechnung', ]); - $betrag = BankTransaction::getRemainingBetrag($id) ?: abs((float)$transaction['wert']); - BankTransaction::linkBeleg($id, $belegId, $betrag); - View::redirect('/bank', 'Beleg hochgeladen und Buchung verknüpft.'); + View::redirect("/bank/$id", 'Beleg hochgeladen – bitte jetzt verknüpfen.'); } private function renderView(string $name, array $data = []): string diff --git a/src/Views/bank/show.php b/src/Views/bank/show.php index f566817..21723de 100644 --- a/src/Views/bank/show.php +++ b/src/Views/bank/show.php @@ -126,22 +126,81 @@ $restFormatted = number_format($remaining, 2, ',', '.'); 0.01): ?>
-
Neuen Beleg hochladen & verknüpfen
-
-
-
-
- -
PDF, PNG, JPEG, TIFF, XML
+
Neuen Beleg hochladen
+
+ +
+ +
+
📄
+
Beleg hierher ziehen oder klicken
+
PDF · PNG · JPEG · TIFF · XML
+
- +
+
+
+ +
diff --git a/src/Views/belege/detail.php b/src/Views/belege/detail.php index 577ebd1..fd8d9c5 100644 --- a/src/Views/belege/detail.php +++ b/src/Views/belege/detail.php @@ -298,23 +298,35 @@ $suppliers = $suppliers ?? []; - +