hs.hsadmin.ng/doc/hs-office-data-structure.md

4.0 KiB

Beispiel: juristische Person (GmbH)

classDiagram
    direction TD

    namespace Geschäftspartner {
        
       class partner-MeierGmbH
       class contact-MeierGmbH
       class person-MeierGmbH
       
       class person-FrankMeier
       class contact-FrankMeier
       class role-MeierGmbH-FrankMeier

       class person-SabineMeier
       class contact-SabineMeier
       class role-MeierGmbH-SabineMeier
       
        class debitor-MeierGmbH
        class contact-MeierGmbH-Buha
        class role-MeierGmbH-Buha
    }

    class partner-MeierGmbH {
        +person
        +contact
        +details
    }
    partner-MeierGmbH o-- person-MeierGmbH
    partner-MeierGmbH o-- contact-MeierGmbH

    class person-MeierGmbH {
        +personType: LEGAL
        +tradeName: Meier GmbH
        +familyName
        +givenName
        +registrationOffice: AG Hamburg
        +registrationNumber: ABC123434
        +birthName
        +birthPlace
        +dateOfDeath
    }

    class contact-MeierGmbH {
        +postalAddress:     Hauptstraße 5, 22345 Hamburg
        +phoneNumbers:      +49 40 12345-00
        +emailAddresses:    office@meier-gmbh.de
    }

    class debitor-MeierGmbH {
        +Partner    partner
        +Numeric[2] debitorNumberSuffix:    00
        +Role       billingRole
        +boolean    billable:               true
        +String     vatId:                  ID123456789
        +String     vatCountryCode:         DE
        +boolean    vatBusiness:            true
        +boolean    vatReverseCharge:       false
        +BankAccount refundBankAccount
        +String     defaultPrefix:          mei
    }
    debitor-MeierGmbH o-- partner-MeierGmbH
    debitor-MeierGmbH o-- role-MeierGmbH-Buha

    class contact-MeierGmbH-Buha {
        +postalAddress:     Hauptstraße 5, 22345 Hamburg
        +phoneNumbers:      +49 40 12345-05
        +emailAddresses:    buha@meier-gmbh.de
    }

    class role-MeierGmbH-Buha {
        +RelType relType ACCOUNTING
        +Person relAnchor
        +Person relHolder
        +Contact contact
    }
    role-MeierGmbH-Buha o-- person-MeierGmbH : relAnchor
    role-MeierGmbH-Buha o-- person-MeierGmbH : relHolder
    role-MeierGmbH-Buha o-- contact-MeierGmbH-Buha

    class person-FrankMeier {
        + personType: NATURAL
        + tradeName
        + familyName: Meier
        + givenName: Frank
    }

    class contact-FrankMeier {
        +postalAddress
        +phoneNumbers: +49 40 12345-22
        +emailAddresses: frank.meier@meier-gmbh.de
    }

    class role-MeierGmbH-FrankMeier {
        +RelType relType REPRESENTATIVE
        +Person relAnchor
        +Person relHolder
        +Contact contact
    }
    role-MeierGmbH-FrankMeier o-- person-MeierGmbH : relAnchor
    role-MeierGmbH-FrankMeier o-- person-FrankMeier : relHolder
    role-MeierGmbH-FrankMeier o-- contact-FrankMeier

    class person-SabineMeier {
        +personType: NATURAL
        +tradeName
        +familyName: Meier
        +givenName: Sabine
    }

    class contact-SabineMeier {
        +postalAddress
        +phoneNumbers: +49 40 12345-22
        +emailAddresses: sabine.meier@meier-gmbh.de
    }

    class role-MeierGmbH-SabineMeier {
        +RelType relType OPERATIONAL
        +Person relAnchor
        +Person relHolder
        +Contact contact
    }
    role-MeierGmbH-SabineMeier o-- person-MeierGmbH : relAnchor
    role-MeierGmbH-SabineMeier o-- person-SabineMeier : relHolder
    role-MeierGmbH-SabineMeier o-- contact-SabineMeier

    namespace Enums {

        class RelType {
            <<enumeration>>
            UNKNOWN
            REPRESENTATIVE
            ACCOUNTING
            OPERATIONS
        }

        class PersonType {
            <<enumeration>>
            UNKNOWN: nur für Import
            NATURAL_PERSON: natürliche Person
            LEGAL_PERSON: z.B. GmbH, e.K., eG, e.V.
            INCORORATED_FIRM: z.B. OHG, Partnerschaftsgesellschaft
            UNINCORPORATED_FIRM: z.B. GbR, ARGE, Erbengemeinschaft
            PUBLIC_INSTITUTION: KdöR, AöR [ohne Registergericht/Registernummer]
        }
    }