diff --git a/doc/business-glossary-de.md b/doc/business-glossary-de.md new file mode 100644 index 00000000..4ab2d60a --- /dev/null +++ b/doc/business-glossary-de.md @@ -0,0 +1,76 @@ +### hsadminNg fachliches Glossar + + + +Dieses ist eine Sammlung von Fachbegriffen, die in diesem Projekt benutzt werden. +Ebenfalls aufgenommen sind technische Begriffe, die für Benutzer für das Verständnis der Schnittstellen nötig sind. + +Falls etwas fehlt, bitte Bescheid geben. + + +#### Partner + +In diesem System ist ein _Partner_ grundsätzlich jeglicher Geschäftspartner der _Hostsharing eG_. +Dies können grundsätzlich Kunden, siehe [Debitor](#Debitor), wie Lieferanten sein. +Derzeit sind aber nur Debitoren implementiert. + +Des Weiteren gibt es für jeden _Partner_ eine fünfstellige Partnernummer mit dem Prefix 'P-' (z.B. `P-123454`) +sowie Zusatzinformationen (z.B. Registergerichtnummer oder Geburtsdatum), die zur genauen Identifikation benötigt werden. + +Für einen _Partner_ kann es gleichzeitig mehrere [Debitoren](#Debitor) +und zeitlich nacheinander mehrere [Mitgliedschaften](#Mitgliedschaft) geben. + +Partner sind grundsätzlich als ist [Relation](#Relation) der Vertragsperson mit der Person _Hostsharing eG_ implementiert. + + +#### Ex-Partner + +Ex-Partner bilden [Personen](#Person) ab, die vormals [Partner](#Partner) waren. +Diese bleiben dadurch dem System + + +### Debitor + +Ein `Debitor` ist quasi ein Rechnungsempfänger für einen [Partner](#Partner). + +Für einen _Partner_ kann es gleichzeitig mehrere [Debitoren](#Debitor) geben, +z.B. für spezielle Projekte des Kunden oder verbundene Organisationen. + +Des Weiteren gibt es für jeden _Partner_ eine fünfstellige Partnernummer mit dem Prefix 'P-' (z.B. `P-123454`) +sowie Zusatzinformationen (z.B. Registergerichtsnummer oder Geburtsdatum), die zur genauen Identifikation benötigt werden. + + + +Debitoren sind grundsätzlich als ist [Relation](#Relation) der Vertragsperson mit der Person des Vertragspartners implementiert. + + +#### Representative (ehemals _contractual_) + +Ein _Representative_ ist eine natürliche Person, die für eine nicht-natürliche Person vertretungsberechtigt ist. + +Implementiert ist der _Representative_ als eine besondere Form der [Relation](#Relation) des + + + 'VIP_CONTACT', + 'OPERATIONS', + 'SUBSCRIBER'); + + +#### Relation (so eine Art Geschäftsrolle) + +Eine _Relation_ ist eine Beziehung + +Wir haben hier keinen Begriff mit 'Rolle' verwendet, +weil 'Role' (engl.) zu leicht mit der [RBAC-Rolle](#RBAC-Role) verwechselt werden könnte. + +Die _Relation_ ist auch ein technisches Konzept und gehört nicht zur Domänensprache. +Dieses Konzept ist jedoch für das Verständnis der ([API](#API)) notwendig. + +#### Anker + + +#### API (Application-Programming-Interface) + diff --git a/src/main/java/net/hostsharing/hsadminng/hs/office/partner/HsOfficePartnerController.java b/src/main/java/net/hostsharing/hsadminng/hs/office/partner/HsOfficePartnerController.java index 1c86698a..1aefafa2 100644 --- a/src/main/java/net/hostsharing/hsadminng/hs/office/partner/HsOfficePartnerController.java +++ b/src/main/java/net/hostsharing/hsadminng/hs/office/partner/HsOfficePartnerController.java @@ -143,6 +143,7 @@ public class HsOfficePartnerController implements HsOfficePartnersApi { private void optionallyCreateExPartnerRelation(final HsOfficePartnerEntity saved, final HsOfficeRelationRealEntity previousPartnerRel) { if (!saved.getPartnerRel().getUuid().equals(previousPartnerRel.getUuid())) { + // TODO.impl: we also need to use the new partner-person as the anchor relationRepo.save(previousPartnerRel.toBuilder().uuid(null).type(EX_PARTNER).build()); } } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java index 117751ff..056816d6 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java @@ -321,7 +321,7 @@ class HsOfficeScenarioTests extends ScenarioTest { void shouldCreateMembershipForPartner() { new CreateMembership(this) .given("partnerName", "Test AG") - .given("memberNumberSuffix", "00") + .given("memberNumberSuffix", "00") // FIXME: move into CreateMembership .given("validFrom", "2024-10-15") .given("newStatus", "ACTIVE") .given("membershipFeeBillable", "true") diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/UseCase.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/UseCase.java index 62addd5f..8850edcc 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/UseCase.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/UseCase.java @@ -286,7 +286,7 @@ public abstract class UseCase> { public HttpResponse keep() { final var alias = nextTitle != null ? nextTitle : resultAlias; - // FIXME assertThat(alias).as("cannot keep result, no title or alias found for locationUuid: " + locationUuid).isNotNull(); + assertThat(alias).as("cannot keep result, no title or alias found for locationUuid: " + locationUuid).isNotNull(); return keepAs(alias); } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/CreatePartner.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/CreatePartner.java index a3aa727c..731e1151 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/CreatePartner.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/CreatePartner.java @@ -16,6 +16,8 @@ public class CreatePartner extends UseCase { public CreatePartner(final ScenarioTest testSuite) { super(testSuite); + + // FIXME: Anmerkung, dass alle Partner Kunden sind } @Override