From 15223760f58311ce3de29020c05fdb590d2db4bb Mon Sep 17 00:00:00 2001 From: Jukka Lampikoski Date: Fri, 13 Mar 2026 14:53:59 +0200 Subject: [PATCH] =?UTF-8?q?Auto-update=20ticket=20status=20to=20k=C3=A4sit?= =?UTF-8?q?telyss=C3=A4=20on=20first=20reply?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - zammad_reply endpoint now sets intra status uusi→kasittelyssa - Also updates Zammad ticket state to open - Fixed stateMap: Zammad open now maps to kasittelyssa instead of avoin Co-Authored-By: Claude Opus 4.6 --- api.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/api.php b/api.php index cda50f1..4b9853b 100644 --- a/api.php +++ b/api.php @@ -5379,7 +5379,7 @@ switch ($action) { // Zammad state → intran status $stateMap = [ - 'new' => 'uusi', 'open' => 'avoin', 'pending reminder' => 'odottaa', + 'new' => 'uusi', 'open' => 'kasittelyssa', 'pending reminder' => 'odottaa', 'pending close' => 'odottaa', 'closed' => 'suljettu', 'merged' => 'suljettu', 'removed' => 'suljettu', ]; @@ -5638,6 +5638,21 @@ switch ($action) { $attachments ); + // Päivitä tila: uusi → käsittelyssä (sekä intra että Zammad) + if ($ticket['status'] === 'uusi') { + _dbExecute( + "UPDATE tickets SET status = 'kasittelyssa' WHERE id = ? AND company_id = ?", + [$ticketId, $companyId] + ); + // Päivitä Zammadiin: state → open + try { + $z->updateTicket((int)$ticket['zammad_ticket_id'], ['state' => 'open']); + } catch (\Throwable $e) { + // Ei estä vastauksen tallennusta — logita virhe + error_log("Zammad state update failed: " . $e->getMessage()); + } + } + // Tallenna To/CC/BCC tiketille pysyvästi _dbExecute( "UPDATE tickets SET to_email = ?, cc = ?, bcc = ? WHERE id = ? AND company_id = ?",