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): ?>