From 729306fc5091ae9ead59b64e8bcb51cd1853ead9 Mon Sep 17 00:00:00 2001 From: Avatarsia Date: Thu, 2 Apr 2026 00:58:01 +0200 Subject: [PATCH] fix: write tracking to versandpakete table for UI visibility (#247) The API wrote tracking numbers only to the legacy 'versand' table, but the UI Pakete tab reads exclusively from 'versandpakete'. Now also inserts into versandpakete with lieferschein_ohne_pos link and sets lieferschein.versand_status = 1. Fixes: https://github.com/OpenXE-org/OpenXE/issues/247 --- .../Version1/TrackingNumberController.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/classes/Modules/Api/Controller/Version1/TrackingNumberController.php b/classes/Modules/Api/Controller/Version1/TrackingNumberController.php index 62558891c..5e39d5553 100644 --- a/classes/Modules/Api/Controller/Version1/TrackingNumberController.php +++ b/classes/Modules/Api/Controller/Version1/TrackingNumberController.php @@ -69,6 +69,31 @@ public function createAction() ]; $result = $resource->insert($bindValues); + // Also write to versandpakete table so tracking appears in UI Pakete tab + // The UI reads exclusively from versandpakete (old versand-based display is commented out) + $DB = $this->legacyApi->app->DB; + $lieferscheinId = (int)$orderData['lieferscheinid']; + if ($lieferscheinId > 0) { + $versandart = $DB->Select( + "SELECT versandart FROM lieferschein WHERE id = '" . $lieferscheinId . "' LIMIT 1" + ); + $DB->Insert( + "INSERT INTO versandpakete (tracking, tracking_link, gewicht, status, lieferschein_ohne_pos, versandart, versender) " + . "VALUES (" + . "'" . $DB->real_escape_string($input['tracking']) . "', " + . "'', " + . "'" . $DB->real_escape_string($input['gewicht']) . "', " + . "'versendet', " + . "'" . $lieferscheinId . "', " + . "'" . $DB->real_escape_string($versandart) . "', " + . "'API'" + . ")" + ); + $DB->Update( + "UPDATE lieferschein SET versand_status = 1 WHERE id = '" . $lieferscheinId . "'" + ); + } + return $this->sendResult($result, Response::HTTP_CREATED); }