Compare commits
No commits in common. "4fb0a270da4384f79069ef329fc3e6820cebbcea" and "9feef02a170c1e19b08022067a7127adf32d88d1" have entirely different histories.
4fb0a270da
...
9feef02a17
@ -1,76 +0,0 @@
|
|||||||
### hsadminNg fachliches Glossar
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Currently, this business glossary is only available in German because in many cases,
|
|
||||||
the German terms are important for comprehensibility for those using this software.
|
|
||||||
-->
|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
@ -143,7 +143,6 @@ public class HsOfficePartnerController implements HsOfficePartnersApi {
|
|||||||
|
|
||||||
private void optionallyCreateExPartnerRelation(final HsOfficePartnerEntity saved, final HsOfficeRelationRealEntity previousPartnerRel) {
|
private void optionallyCreateExPartnerRelation(final HsOfficePartnerEntity saved, final HsOfficeRelationRealEntity previousPartnerRel) {
|
||||||
if (!saved.getPartnerRel().getUuid().equals(previousPartnerRel.getUuid())) {
|
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());
|
relationRepo.save(previousPartnerRel.toBuilder().uuid(null).type(EX_PARTNER).build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -321,7 +321,7 @@ class HsOfficeScenarioTests extends ScenarioTest {
|
|||||||
void shouldCreateMembershipForPartner() {
|
void shouldCreateMembershipForPartner() {
|
||||||
new CreateMembership(this)
|
new CreateMembership(this)
|
||||||
.given("partnerName", "Test AG")
|
.given("partnerName", "Test AG")
|
||||||
.given("memberNumberSuffix", "00") // FIXME: move into CreateMembership
|
.given("memberNumberSuffix", "00")
|
||||||
.given("validFrom", "2024-10-15")
|
.given("validFrom", "2024-10-15")
|
||||||
.given("newStatus", "ACTIVE")
|
.given("newStatus", "ACTIVE")
|
||||||
.given("membershipFeeBillable", "true")
|
.given("membershipFeeBillable", "true")
|
||||||
|
@ -286,7 +286,7 @@ public abstract class UseCase<T extends UseCase<?>> {
|
|||||||
|
|
||||||
public HttpResponse keep() {
|
public HttpResponse keep() {
|
||||||
final var alias = nextTitle != null ? nextTitle : resultAlias;
|
final var alias = nextTitle != null ? nextTitle : resultAlias;
|
||||||
assertThat(alias).as("cannot keep result, no title or alias found for locationUuid: " + locationUuid).isNotNull();
|
// FIXME assertThat(alias).as("cannot keep result, no title or alias found for locationUuid: " + locationUuid).isNotNull();
|
||||||
|
|
||||||
return keepAs(alias);
|
return keepAs(alias);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package net.hostsharing.hsadminng.hs.office.scenarios.membership;
|
package net.hostsharing.hsadminng.hs.office.scenarios.membership;
|
||||||
|
|
||||||
import io.restassured.http.ContentType;
|
import io.restassured.http.ContentType;
|
||||||
import net.hostsharing.hsadminng.hs.office.scenarios.ScenarioTest;
|
|
||||||
import net.hostsharing.hsadminng.hs.office.scenarios.UseCase;
|
import net.hostsharing.hsadminng.hs.office.scenarios.UseCase;
|
||||||
|
import net.hostsharing.hsadminng.hs.office.scenarios.ScenarioTest;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
import static io.restassured.http.ContentType.JSON;
|
import static io.restassured.http.ContentType.JSON;
|
||||||
@ -16,17 +16,11 @@ public class CreateMembership extends UseCase<CreateMembership> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HttpResponse run() {
|
protected HttpResponse run() {
|
||||||
|
// FIXME: httpGet "partner.uuid": ${Partner: Test AG}
|
||||||
obtain("Partner: %{partnerName}", () ->
|
|
||||||
httpGet("/api/hs/office/partners?name=&{partnerName}")
|
|
||||||
.expecting(OK).expecting(JSON),
|
|
||||||
response -> response.expectArrayElements(1).getFromBody("[0].uuid"),
|
|
||||||
"In production, data this query could result in multiple outputs. In that case, you have to find out which is the right one."
|
|
||||||
);
|
|
||||||
|
|
||||||
return httpPost("/api/hs/office/memberships", usingJsonBody("""
|
return httpPost("/api/hs/office/memberships", usingJsonBody("""
|
||||||
{
|
{
|
||||||
"partner.uuid": ${Partner: %{partnerName}},
|
"partner.uuid": ${Partner: P-31010 - Test AG},
|
||||||
"memberNumberSuffix": ${memberNumberSuffix},
|
"memberNumberSuffix": ${memberNumberSuffix},
|
||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"validFrom": ${validFrom},
|
"validFrom": ${validFrom},
|
||||||
|
@ -16,8 +16,6 @@ public class CreatePartner extends UseCase<CreatePartner> {
|
|||||||
|
|
||||||
public CreatePartner(final ScenarioTest testSuite) {
|
public CreatePartner(final ScenarioTest testSuite) {
|
||||||
super(testSuite);
|
super(testSuite);
|
||||||
|
|
||||||
// FIXME: Anmerkung, dass alle Partner Kunden sind
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user