From b5419473271a5f85c3f4a110941859e2fc67299a Mon Sep 17 00:00:00 2001 From: Raul Bob Date: Wed, 3 Sep 2025 15:55:55 +0200 Subject: [PATCH] #13555 - Fix editing Notifier in phone DD - Restored previous query for retrieving notifier - Changed the edit form to only edit the current version of the notifier --- .../backend/person/notifier/NotifierService.java | 12 ++++++++---- .../notifier/CaseNotifierSideViewController.java | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/person/notifier/NotifierService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/person/notifier/NotifierService.java index 8e9a509680c..51f223ad4fa 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/person/notifier/NotifierService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/person/notifier/NotifierService.java @@ -91,10 +91,14 @@ public Notifier getByUuidAndTime(String uuid, Instant time) { final Timestamp timestamp = Timestamp.from(time); - final String sql = "SELECT * FROM (" - + "SELECT * FROM (SELECT * FROM notifier_history b WHERE b.uuid = :uuid AND changedate <= CAST(:changeDate AS TIMESTAMP) ORDER BY changedate DESC LIMIT 1) " - + "UNION SELECT * FROM notifier a WHERE a.uuid = :uuid) " - + "WHERE uuid = :uuid AND changedate <= CAST(:changeDate AS TIMESTAMP) ORDER BY changedate DESC LIMIT 1;"; + final String sql = "SELECT " + "a.id AS id, a.uuid AS uuid," + "COALESCE(b.changedate, a.changedate) AS changedate," + + "a.creationdate AS creationdate, a.change_user_id AS change_user_id," + + "COALESCE(b.registrationnumber, a.registrationnumber) AS registrationnumber," + "COALESCE(b.firstname, a.firstname) AS firstname," + + "COALESCE(b.lastname, a.lastname) AS lastname," + "COALESCE(b.address, a.address) AS address," + "COALESCE(b.email, a.email) AS email," + + "COALESCE(b.phone, a.phone) AS phone, "+ "COALESCE(b.agentfirstname, a.agentfirstname) AS agentfirstname, " + + "COALESCE(b.agentlastname, a.agentlastname) AS agentlastname "+ "FROM notifier a " + "LEFT JOIN " + "(SELECT * FROM notifier_history " + + "WHERE uuid = :uuid AND changedate <= CAST(:changeDate AS TIMESTAMP) " + "ORDER BY changedate DESC LIMIT 1" + ") b ON a.uuid = b.uuid " + + "WHERE a.uuid = :uuid"; Query query = em.createNativeQuery(sql, Notifier.class); query.setParameter("uuid", uuid); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java index 5f98581c223..1285ad62197 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java @@ -144,8 +144,9 @@ public void editNotifier(CaseDataDto caze, Runnable callback, boolean isEditAllo return; } + // We only edit the current version NotifierDto notifier = - FacadeProvider.getNotifierFacade().getByUuidAndTime(caze.getNotifier().getUuid(), caze.getNotifier().getVersionDate().toInstant()); + FacadeProvider.getNotifierFacade().getByUuid(caze.getNotifier().getUuid()); TherapyDto therapy = caze.getTherapy(); openEditWindow(