Compare commits

..

1 Commits

Author SHA1 Message Date
Michael Hoennig
01c86fa782 HsOfficeContactFromResourceConverter 2025-03-09 15:52:33 +01:00

View File

@ -196,14 +196,18 @@ public class HsOfficePartnerController implements HsOfficePartnersApi {
private void optionallyUpdateRelatedRelations(final HsOfficePartnerRbacEntity saved, final HsOfficePersonRealEntity previousPartnerPerson) { private void optionallyUpdateRelatedRelations(final HsOfficePartnerRbacEntity saved, final HsOfficePersonRealEntity previousPartnerPerson) {
final var partnerPersonHasChanged = !saved.getPartnerRel().getHolder().getUuid().equals(previousPartnerPerson.getUuid()); final var partnerPersonHasChanged = !saved.getPartnerRel().getHolder().getUuid().equals(previousPartnerPerson.getUuid());
if (partnerPersonHasChanged) { if (partnerPersonHasChanged) {
// self-debitors of the old partner-person become self-debitors of the new partner person
em.createNativeQuery(""" em.createNativeQuery("""
UPDATE hs_office.relation UPDATE hs_office.relation
SET holderUuid = :newPartnerPersonUuid SET holderUuid = :newPartnerPersonUuid
WHERE type = 'DEBITOR' AND holderUuid = :oldPartnerPersonUuid AND anchorUuid = :oldPartnerPersonUuid WHERE type = 'DEBITOR' AND
holderUuid = :oldPartnerPersonUuid AND anchorUuid = :oldPartnerPersonUuid
""") """)
.setParameter("oldPartnerPersonUuid", previousPartnerPerson.getUuid()) .setParameter("oldPartnerPersonUuid", previousPartnerPerson.getUuid())
.setParameter("newPartnerPersonUuid", saved.getPartnerRel().getHolder().getUuid()) .setParameter("newPartnerPersonUuid", saved.getPartnerRel().getHolder().getUuid())
.executeUpdate(); .executeUpdate();
// re-anchor all relations from the old partner person to the new partner persion
em.createNativeQuery(""" em.createNativeQuery("""
UPDATE hs_office.relation UPDATE hs_office.relation
SET anchorUuid = :newPartnerPersonUuid SET anchorUuid = :newPartnerPersonUuid