Versuche und Ergebnisse Umstrukturiert

This commit is contained in:
2026-02-19 20:16:26 +01:00
parent a5d2f5490c
commit 9b95958eeb
108 changed files with 1427 additions and 7786 deletions
@@ -0,0 +1,667 @@
# c-entron.NET - Business Glossar mit Datenbank-Mapping
> **Verfasst**: 2025-12-02
> **Grundlage**: Code-Analyse, Datenbank-Schema, NHibernate-Mappings
> **Format**: [Tabelle.Spalte] für alle Datenbank-Referenzen
---
## 📋 Inhaltsverzeichnis
1. [STAMMDATEN DOMÄNE](#stammdaten-domäne)
2. [VERKAUF DOMÄNE](#verkauf-domäne)
3. [EINKAUF DOMÄNE](#einkauf-domäne)
4. [LAGER & BESTAND DOMÄNE](#lager--bestand-domäne)
5. [VERTRAG & SERVICE DOMÄNE](#vertrag--service-domäne)
6. [HELPDESK & SUPPORT DOMÄNE](#helpdesk--support-domäne)
7. [HR & PERSONAL DOMÄNE](#hr--personal-domäne)
8. [FINANZEN & ACCOUNTING DOMÄNE](#finanzen--accounting-domäne)
---
# STAMMDATEN DOMÄNE
## Konto (Account)
**Begriff**: Konto / Geschäftspartner-Stammkonto
**Englisch**: Account
**Datenbank-Tabelle**: `Accounts`
**Primärschlüssel**: `Accounts.I3D`
**Felder mit DB-Mapping**:
- `I3D` → `[Accounts.I3D]` - Eindeutige Kontokennung
- `Number` → `[Accounts.Number]` - Kontonummer (Vergabe durch System)
- `Name` → `[Accounts.Name]` - Name des Geschäftspartners
- `Matchcode` → `[Accounts.Matchcode]` - Suchfeld für schnelle Findung
- `Email` → `[Accounts.Email]` - E-Mail-Adresse
- `Phone` → `[Accounts.Phone]` - Telefonnummer
- `Fax` → `[Accounts.Fax]` - Faxnummer
- `WebSite` → `[Accounts.WebSite]` - Website-URL
- `TaxNumber` → `[Accounts.TaxNumber]` - Steuernummer (Deutschland)
- `RevenueIdentificationNumber` → `[Accounts.RevenueIdentificationNumber]` - Umsatzsteuer-ID
- `IsActive` → `[Accounts.IsActive]` - Aktiv/Inaktiv Status
- `IsLocked` → `[Accounts.IsLocked]` - Sperrstatus
- `AdvertisingNotAllowed` → `[Accounts.AdvertisingNotAllowed]` - Werbe-Opt-out
- `FaxDistributor` → `[Accounts.FaxDistributor]` - In Fax-Verteiler
- `MailDistributor` → `[Accounts.MailDistributor]` - In Mail-Verteiler
- `Comment` → `[Accounts.Comment]` - Interne Notizen
- `MandatorI3D` → `[Accounts.MandatorI3D]` - Zugehöriger Mandant (FK)
- `SalesAreaI3D` → `[Accounts.SalesAreaI3D]` - Vertriebsbereich (FK)
- `CompanyGroupI3D` → `[Accounts.CompanyGroupI3D]` - Konzern-Zugehörigkeit (FK)
- `Adviser1I3D` → `[Accounts.Adviser1I3D]` - Betreuer 1 (FK → Personal)
- `Adviser2I3D` → `[Accounts.Adviser2I3D]` - Betreuer 2 (FK → Personal)
- `Adviser3I3D` → `[Accounts.Adviser3I3D]` - Betreuer 3 (FK → Personal)
- `Adviser4I3D` → `[Accounts.Adviser4I3D]` - Betreuer 4 (FK → Personal)
- `Adviser5I3D` → `[Accounts.Adviser5I3D]` - Betreuer 5 (FK → Personal)
- `Adviser6I3D` → `[Accounts.Adviser6I3D]` - Betreuer 6 (FK → Personal)
- `CreatedByI3D` → `[Accounts.CreatedByI3D]` - Ersteller (FK → Personal)
- `CreatedDate` → `[Accounts.CreatedDate]` - Erstellungsdatum
- `ChangedByI3D` → `[Accounts.ChangedByI3D]` - Letzte Änderung durch (FK → Personal)
- `ChangedDate` → `[Accounts.ChangedDate]` - Letzte Änderung am
- `CreatedVersion` → `[Accounts.CreatedVersion]` - Version bei Erstellung
- `ChangedVersion` → `[Accounts.ChangedVersion]` - Letzte Änderungsversion
**Collections (1:n Beziehungen)**:
- `Addresses` → `[AccountAddresses]` (AccountI3D = Accounts.I3D)
- `AccountTypes` → `[AccountTypeToAccounts]` Junction-Tabelle
---
## Kunde (Customer / Account Customer)
**Begriff**: Kunde / Verkaufs-Kundenkonto
**Englisch**: Customer
**Datenbank-Tabelle**: `AccountCustomers`
**Primärschlüssel**: `AccountCustomers.I3D`
**Beziehung**: Erweiterung von `Accounts` mit Verkaufs-spezifischen Feldern
**Neue/Spezifische Felder mit DB-Mapping**:
- `I3D` → `[AccountCustomers.I3D]` - Eindeutige Kunden-ID (=Account.I3D)
- `Number` → `[AccountCustomers.Number]` - Kundennummer
- `Limit` → `[AccountCustomers.Limit]` - Kreditlimit
- `Discount` → `[AccountCustomers.Discount]` - Standard-Kundenrabatt (%)
- `PriceList` → `[AccountCustomers.PriceList]` - Preislisten-Zuordnung
- `DeliveryOption` → `[AccountCustomers.DeliveryOption]` - Standard-Versandart
- `AlternativeInvoiceAccountI3D` → `[AccountCustomers.AlternativeInvoiceAccountI3D]` - Abweichender Rechnungskunde (FK → Account)
- `AlternativeInvoiceAddressI3D` → `[AccountCustomers.AlternativeInvoiceAddressI3D]` - Abweichende Rechnungsadresse (FK → AccountAddresses)
- `AlternativeDeliveryAccountI3D` → `[AccountCustomers.AlternativeDeliveryAccountI3D]` - Abweichender Lieferkunde (FK → Account)
- `AlternativeDeliveryAddressI3D` → `[AccountCustomers.AlternativeDeliveryAddressI3D]` - Abweichende Lieferadresse (FK → AccountAddresses)
- `ReceiptConditionOfferI3D` → `[AccountCustomers.ReceiptConditionOfferI3D]` - Zahlungsbedingung Angebote (FK → Zahkond)
- `ReceiptConditionOrderI3D` → `[AccountCustomers.ReceiptConditionOrderI3D]` - Zahlungsbedingung Bestellungen (FK → Zahkond)
- `ReceiptConditionInvoiceI3D` → `[AccountCustomers.ReceiptConditionInvoiceI3D]` - Zahlungsbedingung Rechnungen (FK → Zahkond)
- `DunningLetterRecipientPersonI3D` → `[AccountCustomers.DunningLetterRecipientPersonI3D]` - Mahnungs-Empfänger (FK → AccountAddressContacts)
- `DunningLetterAfterDays1` → `[AccountCustomers.DunningLetterAfterDays1]` - Tage bis 1. Mahnung
- `DunningLetterAfterDays2` → `[AccountCustomers.DunningLetterAfterDays2]` - Tage bis 2. Mahnung
- `DunningLetterAfterDays3` → `[AccountCustomers.DunningLetterAfterDays3]` - Tage bis 3. Mahnung
- `LimitCalculationKind` → `[AccountCustomers.LimitCalculationKind]` - Art der Limitberechnung
- `WarehouseI3D` → `[AccountCustomers.WarehouseI3D]` - Standard-Lager (FK → Warehouses)
- `IsPurchaseOrderNumberRequired` → `[AccountCustomers.IsPurchaseOrderNumberRequired]` - Bestellnummer erforderlich (Flag)
- `IsProjectNumberRequired` → `[AccountCustomers.IsProjectNumberRequired]` - Projektnummer erforderlich (Flag)
- `IsProductionConfigurationMandatory` → `[AccountCustomers.IsProductionConfigurationMandatory]` - Fertigungskonfiguration erforderlich (Flag)
- `CommentOffer` → `[AccountCustomers.CommentOffer]` - Standard-Text Angebote
- `CommentOrder` → `[AccountCustomers.CommentOrder]` - Standard-Text Bestellungen
- `CommentInvoice` → `[AccountCustomers.CommentInvoice]` - Standard-Text Rechnungen
- `CommentDeliveryList` → `[AccountCustomers.CommentDeliveryList]` - Standard-Text Lieferscheine
- `MailNotificationAtHelpdeskBCC` → `[AccountCustomers.MailNotificationAtHelpdeskBCC]` - BCC-Adressen bei Ticket-Mails
- `BookKeepingNumber` → `[AccountCustomers.BookKeepingNumber]` - Debitorennummer in Fibu
---
## Adresse (Address)
**Begriff**: Adresse / Geschäftspartner-Adresse
**Englisch**: Address
**Datenbank-Tabelle**: `AccountAddresses`
**Primärschlüssel**: `AccountAddresses.I3D`
**Felder mit DB-Mapping**:
- `I3D` → `[AccountAddresses.I3D]` - Eindeutige Adresskennung
- `AccountI3D` → `[AccountAddresses.AccountI3D]` - Gehörendes Konto (FK → Accounts)
- `Status` → `[AccountAddresses.Status]` - Status (aktiv/archiviert)
- `Street` → `[AccountAddresses.Street]` - Straße
- `PostalCode` → `[AccountAddresses.PostalCode]` - Postleitzahl
- `City` → `[AccountAddresses.City]` - Stadt/Ort
- `CountryI3D` → `[AccountAddresses.CountryI3D]` - Land (FK)
- `Phone1` → `[AccountAddresses.Phone1]` - Telefon 1
- `Phone2` → `[AccountAddresses.Phone2]` - Telefon 2
- `Fax1` → `[AccountAddresses.Fax1]` - Fax
- `Email1` → `[AccountAddresses.Email1]` - E-Mail
- `Web` → `[AccountAddresses.Web]` - Website
- `Receiver` → `[AccountAddresses.Receiver]` - Empfängername (abweichend vom Konto)
- `AddressKindI3D` → `[AccountAddresses.AddressKindI3D]` - Adresstyp (Rechnungs-, Lieferadresse, etc.)
- `IsDefault` → `[AccountAddresses.IsDefault]` - Standard-Adresse
- `CreatedDate` → `[AccountAddresses.CreatedDate]` - Erstellungsdatum
- `ChangedDate` → `[AccountAddresses.ChangedDate]` - Änderungsdatum
**Collections**:
- `Contacts` → `[AccountAddressContacts]` (AccountAddressI3D = AccountAddresses.I3D)
---
## Ansprechperson (Contact Person)
**Begriff**: Ansprechperson / Kontaktperson
**Englisch**: Contact Person
**Datenbank-Tabelle**: `AccountAddressContacts`
**Primärschlüssel**: `AccountAddressContacts.I3D`
**Felder mit DB-Mapping**:
- `I3D` → `[AccountAddressContacts.I3D]` - Eindeutige Personenkennung
- `AccountAddressI3D` → `[AccountAddressContacts.AccountAddressI3D]` - Adresse (FK → AccountAddresses)
- `Firstname` → `[AccountAddressContacts.Firstname]` - Vorname
- `Lastname` → `[AccountAddressContacts.Lastname]` - Nachname
- `Phone1` → `[AccountAddressContacts.Phone1]` - Telefon 1
- `Phone2` → `[AccountAddressContacts.Phone2]` - Telefon 2
- `Fax1` → `[AccountAddressContacts.Fax1]` - Fax
- `Email1` → `[AccountAddressContacts.Email1]` - E-Mail 1
- `Email2` → `[AccountAddressContacts.Email2]` - E-Mail 2
- `Job` → `[AccountAddressContacts.Job]` - Funktion/Abteilung
- `Birthday` → `[AccountAddressContacts.Birthday]` - Geburtsdatum
- `SalutationI3D` → `[AccountAddressContacts.SalutationI3D]` - Anrede (FK)
- `IsActive` → `[AccountAddressContacts.IsActive]` - Aktiv/Inaktiv
- `IsDefault` → `[AccountAddressContacts.IsDefault]` - Standard-Kontakt
- `DefaultTicket` → `[AccountAddressContacts.DefaultTicket]` - Standard bei Helpdesk-Tickets
- `IsInvoiceMailCCReceiver` → `[AccountAddressContacts.IsInvoiceMailCCReceiver]` - CC bei Rechnungsmails
- `CreatedDate` → `[AccountAddressContacts.CreatedDate]` - Erstellungsdatum
- `ChangedDate` → `[AccountAddressContacts.ChangedDate]` - Änderungsdatum
---
# VERKAUF DOMÄNE
## Bestellung / Auftrag (Order)
**Begriff**: Bestellung / Kundenauftrag
**Englisch**: Order
**Datenbank-Tabelle**: `AufKopf` (Auftragskopf - Legacy German naming)
**Primärschlüssel**: `AufKopf.I3D`
**Hauptfelder mit DB-Mapping**:
- `I3D` → `[AufKopf.I3D]` - Eindeutige Auftrags-ID
- `Number` → `[AufKopf.Nummer]` - Bestellnummer (z.B. "2025-00042")
- `Status` → `[AufKopf.Status]` - Bearbeitungsstatus
- `Date` → `[AufKopf.Datum]` - Bestelldatum
- `Version` → `[AufKopf.Version]` - Versionsnummer
- `CreatorI3D` → `[AufKopf.ErstellerI3D]` - Ersteller (FK → Personal)
- `CreationDate` → `[AufKopf.ErstelltDatum]` - Erstellungsdatum
- `EditorI3D` → `[AufKopf.BearbeiterI3D]` - Bearbeiter (FK → Personal)
- `ChangedFromI3D` → `[AufKopf.GeaendertVonI3D]` - Geändert von (FK → Personal)
- `ChangedDate` → `[AufKopf.GeaendertDatum]` - Änderungsdatum
**Kunden-Daten mit DB-Mapping**:
- `CustomerI3D` → `[AufKopf.KundenID]` - Kunde (FK → Accounts)
- `Receiver` → `[AufKopf.Empfanger]` - Adressat/Empfängername
- `AddressI3D` → `[AufKopf.AnschriftID]` - Rechnungsadresse (FK → AccountAddresses)
- `ContactI3D` → `[AufKopf.PersonID]` - Kontaktperson (FK → AccountAddressContacts)
- `Street` → `[AufKopf.Strasse]` - Straße
- `Zip` → `[AufKopf.Plz]` - Postleitzahl
- `City` → `[AufKopf.Ort]` - Stadt
- `Phone` → `[AufKopf.Tel]` - Telefon
- `Fax` → `[AufKopf.Fax]` - Fax
- `Email` → `[AufKopf.Mail]` - E-Mail
- `CountryI3D` → `[AufKopf.LandI3D]` - Land (FK)
**Abweichende Lieferdaten mit DB-Mapping**:
- `DeliveryCustomerI3D` → `[AufKopf.LiefKundI3D]` - Abweichender Lieferkunde (FK → Accounts)
- `DeliveryCustomerExt` → `[AufKopf.LiefKundFremd]` - Lieferkunde ist extern
- `DirectDelivery` → `[AufKopf.Direktlieferung]` - Direktlieferung vom Lieferanten
**Finanzen & Preisierung mit DB-Mapping**:
- `DBNetPrice` → `[AufKopf.Netto]` - Netto-Summe (ohne MwSt)
- `DBGrossPrice` → `[AufKopf.Brutto]` - Brutto-Summe (mit MwSt)
- `DBPurchasePrice` → `[AufKopf.SummeEK]` - Einstandspreis-Summe
- `Discount` → `[AufKopf.Rabatt]` - Rabatt (%)
- `CurrencyI3D` → `[AufKopf.CurrencyI3D]` - Währung (FK)
- `CurrencyString` → `[AufKopf.CurrencyString]` - Währungscode (z.B. "EUR")
- `CurrencyFactor` → `[AufKopf.CurrencyFactor]` - Wechselkurs
**Lieferung & Logistik mit DB-Mapping**:
- `DeliveryDate` → `[AufKopf.Lieferdatum]` - Gewünschtes Lieferdatum
- `PartialDelivery` → `[AufKopf.Teillieferung]` - Teillieferungen erlaubt (Flag)
- `AssetConditionI3D` → `[AufKopf.ZahlkondID]` - Zahlungsbedingung (FK → Zahkond)
- `DeliveryConditionI3D` → `[AufKopf.LieferbedID]` - Lieferbedingung (FK)
- `PreparationDate` → `[AufKopf.Bereitstellung]` - Bereitstellungsdatum
**Kommissionierung & Produktion mit DB-Mapping**:
- `Picked` → `[AufKopf]` - [TBD Mapping erforderlich]
- `PickedAt` → `[AufKopf]` - [TBD Mapping erforderlich]
- `Produced` → `[AufKopf]` - [TBD Mapping erforderlich]
- `ProducedAt` → `[AufKopf]` - [TBD Mapping erforderlich]
**Controlling & Administration mit DB-Mapping**:
- `CostObjectI3D` → `[AufKopf.KostentraegerI3D]` - Kostenträger (FK)
- `CostCenterI3D` → `[AufKopf.KostenstellenI3D]` - Kostenstelle (FK)
- `ProjectNumber` → `[AufKopf.ProjNr]` - Projektnummer (frei eingegeben)
- `OrderNumber` → `[AufKopf.BestNr]` - Externe Bestellnummer
- `ControllingText` → `[AufKopf.Zusatztext]` - Zusatztext für Reporting
- `Info` → `[AufKopf.Info]` - Informationen/Notizen
- `Adviser1I3D` → `[AufKopf.InnendienstID]` - Innendienst (FK → Personal)
- `Adviser2I3D` → `[AufKopf.AussendienstID]` - Außendienst (FK → Personal)
- `Adviser3I3D` → `[AufKopf.TechnikerID]` - Techniker 1 (FK → Personal)
- `Adviser4I3D` → `[AufKopf.Techniker2ID]` - Techniker 2 (FK → Personal)
- `BranchI3D` → `[AufKopf.FilialI3D]` - Filiale (FK → Filiale)
**Collections**:
- `Positions` → `[AufPos]` (KeyColumn: AufKopfI3D = AufKopf.I3D)
---
## Bestellung-Position (Order Position / Receipt Line Item)
**Begriff**: Auftragsposition / Bestellposition
**Englisch**: Order Position / Line Item
**Datenbank-Tabelle**: `AufPos` (Auftragsposition)
**Primärschlüssel**: `AufPos.I3D`
**Felder mit DB-Mapping**:
- `I3D` → `[AufPos.I3D]` - Eindeutige Positions-ID
- `AufKopfI3D` → `[AufPos.AufKopfI3D]` - Gehörender Auftrag (FK → AufKopf)
- `Positionsnummer` → `[AufPos.Position]` - Laufende Nummer (1, 2, 3, ...)
- `ArtikelI3D` → `[AufPos.ArtikelI3D]` - Artikel (FK → ARTIK)
- `Menge` → `[AufPos.Menge]` - Bestellte Menge
- `EinheitI3D` → `[AufPos.EinheitI3D]` - Maßeinheit (FK → Einheiten)
- `Einzelpreis` → `[AufPos.EinzelPreis]` - Preis pro Einheit
- `Positionssumme` → `[AufPos.Summe]` - Menge × Einzelpreis
- `Rabatt` → `[AufPos.Rabatt]` - Positionsrabatt (%)
- `MwStSatz` → `[AufPos.MwStSatz]` - Mehrwertsteuersatz
- `Einstandspreis` → `[AufPos.EinstandsPreis]` - Kostenlage
- `Beschreibung` → `[AufPos.Text]` - Position-Beschreibung
- `Seriennummer` → `[AufPos.SerienNr]` - Seriennummer (falls einzelner Artikel)
- `KostenträgerI3D` → `[AufPos.KostentraegerI3D]` - Kostenträger pro Position
---
## Rechnung (Invoice)
**Begriff**: Rechnung / Invoice
**Englisch**: Invoice
**Datenbank-Tabelle**: `RechKopf` (Rechnungskopf)
**Primärschlüssel**: `RechKopf.I3D`
**Strukturell identisch mit Bestellung**, Tabelle: `RechKopf`
**Spezifische Rechnungs-Felder mit DB-Mapping**:
- `I3D` → `[RechKopf.I3D]` - Eindeutige Rechnungs-ID
- `Number` → `[RechKopf.Nummer]` - Rechnungsnummer
- `Status` → `[RechKopf.Status]` - Rechnungsstatus
- `Date` → `[RechKopf.Datum]` - Rechnungsdatum
- `DueDate` → `[RechKopf]` - [TBD - Fälligkeitsdatum nicht in Basis gemappt]
- `Paid` → `[RechKopf]` - [TBD - Bezahlt-Flag nicht gemappt]
- `EdiExported` → `[RechKopf.EDIExport]` - Zu EDI exportiert (Flag)
- `EdiExportDate` → `[RechKopf.EDIExportAm]` - EDI-Export Datum
**Collections**:
- `Positions` → `[RechPos]` (KeyColumn: RechKopfI3D = RechKopf.I3D)
---
## Angebot (Offer)
**Begriff**: Angebot / Quotation
**Englisch**: Offer
**Datenbank-Tabelle**: `AngKopf` (Angebotskopf)
**Primärschlüssel**: `AngKopf.I3D`
**Strukturell identisch mit Bestellung/Rechnung**, Mapping analog `[AngKopf]` / `[AngPos]`
---
## Lieferschein (Delivery List)
**Begriff**: Lieferschein / Delivery Note
**Englisch**: Delivery List
**Datenbank-Tabelle**: `LiefKopf` (Lieferscheinkopf)
**Primärschlüssel**: `LiefKopf.I3D`
**Strukturell identisch mit Bestellung**, Mapping analog `[LiefKopf]` / `[LiefPos]`
---
# EINKAUF DOMÄNE
## Kreditor / Lieferant (Supplier)
**Begriff**: Kreditor / Lieferant
**Englisch**: Supplier / Vendor
**Datenbank-Tabelle**: `AccountSuppliers`
**Primärschlüssel**: `AccountSuppliers.I3D`
**Beziehung**: Erweiterung von `Accounts` mit Einkaufs-spezifischen Feldern
**Einkaufs-spezifische Felder mit DB-Mapping**:
- `I3D` → `[AccountSuppliers.I3D]` - Eindeutige Lieferanten-ID
- `Number` → `[AccountSuppliers.Number]` - Lieferantennummer
- `FreightCost` → `[AccountSuppliers.FreightCost]` - Standard-Versandkosten
- `MinimumOrderValue` → `[AccountSuppliers.MinimumOrderValue]` - Mindestbestellwert
- `Discount` → `[AccountSuppliers.Discount]` - Standard-Lieferantenrabatt
- `Limit` → `[AccountSuppliers.Limit]` - Kreditlimit
- `IsIsoCertified` → `[AccountSuppliers.IsIsoCertified]` - ISO-Zertifiziert (Flag)
- `IsManufacturer` → `[AccountSuppliers.IsManufacturer]` - Ist Hersteller (Flag)
- `IsDistributor` → `[AccountSuppliers.IsDistributor]` - Ist Distributor (Flag)
- `WarehouseI3D` → `[AccountSuppliers.WarehouseI3D]` - Standard-Lager (FK → Warehouses)
- `EgisSupplierNumber` → `[AccountSuppliers.EgisSupplierNumber]` - EGIS-Nummer
- `ItScopeSupplierNumber` → `[AccountSuppliers.ItScopeSupplierNumber]` - ITScope-Nummer
- `OwnCustomerNumber` → `[AccountSuppliers.OwnCustomerNumber]` - Unsere Kundennummer beim Lieferanten
- `BookKeepingNumber` → `[AccountSuppliers.BookKeepingNumber]` - Kreditornummer in Fibu
- `ReceiptConditionOrderI3D` → `[AccountSuppliers.ReceiptConditionOrderI3D]` - Zahlungsbedingung Bestellungen (FK → Zahkond)
- `ReceiptConditionInvoiceI3D` → `[AccountSuppliers.ReceiptConditionInvoiceI3D]` - Zahlungsbedingung Rechnungen (FK → Zahkond)
---
# LAGER & BESTAND DOMÄNE
## Artikel (Article / Product)
**Begriff**: Artikel / Produkt
**Englisch**: Article / Product
**Datenbank-Tabelle**: `ARTIK` (Read-Only Staging Table)
**Primärschlüssel**: `ARTIK.I3D`
**Hauptfelder mit DB-Mapping**:
- `I3D` → `[ARTIK.I3D]` - Eindeutige Artikel-ID
- `Articlecode` → `[ARTIK.Artikelcode]` - Interne Artikelnummer
- `Manufacturercode` → `[ARTIK.Hersteller]` - Hersteller-Code
- `EANCode` → `[ARTIK.EANCode]` - EAN / Barcode
- `ShortDescription` → `[ARTIK.Kurzbegriff]` - Kurzbezeichnung
- `Description` → `[ARTIK.Artikelbeschreibung]` - Langtext/Beschreibung
- `State` → `[ARTIK.Status]` - Status (aktiv, EOL, etc.)
- `EOL` → `[ARTIK.EOL]` - End-of-Life (Flag)
**Preise mit DB-Mapping**:
- `Price1` → `[ARTIK.VK_1]` - Verkaufspreis 1
- `Price2` → `[ARTIK.VK_2]` - Verkaufspreis 2
- `Price3` → `[ARTIK.VK_3]` - Verkaufspreis 3
- `Price4` → `[ARTIK.VK_4]` - Verkaufspreis 4
- `ListPrice` → `[ARTIK.Listenpreis]` - Listenpreis
- `RecommendRetailPrice` → `[ARTIK.EVK]` - Empfohlener Verkaufspreis
- `PurchasePrice` → `[ARTIK.EK]` - Einstandspreis
- `MinimumPrice` → `[ARTIK.Mindestpreis]` - Mindestverkaufspreis
- `PurchasePriceEqualsSellPrice` → `[ARTIK.EKGleichVK]` - EK=VK (Flag)
**Lagerverwaltung mit DB-Mapping**:
- `Amount` → `[ARTIK]` - [Formula-basiert: SUM Bestandsmenge]
- `MinimumHolding` → `[ARTIK.Mindestbestand]` - Minimumbestand
- `OrderInventory` → `[ARTIK.Auftragsbestand]` - Bestand in offenen Aufträgen
- `DeliveryInventory` → `[ARTIK.Lieferbestand]` - Bestand in Lieferung
- `Intake` → `[ARTIK.Zulauf]` - Zulauf (erwartet)
**Klassifizierung mit DB-Mapping**:
- `SecondaryMaterialGroupI3D` → `[ARTIK.WEBKategorie]` - Sekundäre Materialgruppe/Warengruppe (FK)
- `ManufacturerI3D` → `[ARTIK.KreditorI3D]` - Hersteller/Vertrieb (FK → AccountSuppliers)
- `TaxI3D` → `[ARTIK.MWStI3D]` - Steuersatz (FK)
- `ArticleUnitI3D` → `[ARTIK.Einheit]` - Maßeinheit (FK → Einheiten)
- `ProductFamilyI3D` → `[ARTIK.ProduktfamilieI3D]` - Produktfamilie (FK)
**Eigenschaften mit DB-Mapping**:
- `Divisible` → `[ARTIK.Teilbar]` - Bruchverkauf erlaubt (Flag)
- `IsArticleTextEditable` → `[ARTIK.TextAenderbar]` - Text änderbar (Flag)
- `NeedsBarcodes` → `[ARTIK.BarcodeScanen]` - Barcode-Scanning erforderlich (Flag)
- `ChangeStock` → `[ARTIK.Abbuchung]` - Automatische Abrechnung (Flag)
- `IsPartList` → `[ARTIK.StkListe]` - Ist Stückliste (Flag)
- `IsServiceArticle` → `[ARTIK.IsServiceArticle]` - Dienstleistung (Flag)
- `VisibleOnWeb` → `[ARTIK.WEBArtik]` - Im Web sichtbar (Flag)
**Audit-Trail mit DB-Mapping**:
- `CreationDate` → `[ARTIK.Angelegt_am]` - Erstellungsdatum
- `CreatedFromI3D` → `[ARTIK.Angelegt_von]` - Ersteller (FK → Personal)
- `ChangedDate` → `[ARTIK.Geandert_am]` - Änderungsdatum
- `ChangedFromI3D` → `[ARTIK.Geandert_von]` - Geändert von (FK → Personal)
**Collections**:
- `Inventorys` → `[ArtikelBestand]` (KeyColumn: ArtikelI3D = ARTIK.I3D)
---
## Lagerbestand (Stock / Inventory)
**Begriff**: Lagerbestand / Bestandsmenge
**Englisch**: Stock / Inventory
**Datenbank-Tabelle**: `ArtikelBestand`
**Primärschlüssel**: `ArtikelBestand.I3D`
**Felder mit DB-Mapping**:
- `I3D` → `[ArtikelBestand.I3D]` - Eindeutige Bestandskennung
- `ArtikelI3D` → `[ArtikelBestand.ArtikelI3D]` - Artikel (FK → ARTIK)
- `LagerortI3D` → `[ArtikelBestand.LagerortI3D]` - Lagerort/Filiale (FK → Filiale)
- `Menge` → `[ArtikelBestand.Menge]` - Verfügbare Menge
- `Reserviert` → `[ArtikelBestand.Reserviert]` - Reservierte Menge (in offenen Aufträgen)
- `Verfuegbar` → `[ArtikelBestand.Verfuegbar]` - Verfügbar = Menge - Reserviert
- `LagerplatzI3D` → `[ArtikelBestand.LagerplatzI3D]` - Lagerplatz (FK → Lagerplatz)
- `Verfallsdatum` → `[ArtikelBestand.Verfallsdatum]` - Haltbarkeitsdatum
- `Charge` → `[ArtikelBestand.Charge]` - Chargennummer/Losnummer
- `EingangsDatum` → `[ArtikelBestand.EingangsDatum]` - Einlagerungsdatum
---
# VERTRAG & SERVICE DOMÄNE
## Vertrag (Contract)
**Begriff**: Vertrag / Service-Agreement
**Englisch**: Contract
**Datenbank-Tabelle**: `Vertraege` (Vertrag/Vertragskopf - Legacy German naming)
**Primärschlüssel**: `Vertraege.I3D`
**Hauptfelder mit DB-Mapping**:
- `I3D` → `[Vertraege.I3D]` - Eindeutige Vertrags-ID
- `Number` → `[Vertraege.Nummer]` - Vertragsnummer
- `Status` → `[Vertraege.Status]` - Vertragsstatus
- `CustomerI3D` → `[Vertraege.KundenI3D]` - Kunde (FK → Accounts)
- `ContractKindI3D` → `[Vertraege.VertragsArtI3D]` - Vertragsart (FK)
- `Begin` → `[Vertraege.Beginn]` - Vertragsbeginn
- `ContractEnd` → `[Vertraege.Ende]` - Vertragsende
- `Duration` → `[Vertraege.Laufzeit]` - Laufzeit (Monate)
- `DurationKind` → `[Vertraege.LaufzeitArt]` - Art der Laufzeit
- `AutomaticExtensionFlag` → `[Vertraege.AutoVerlaengerung]` - Automatische Verlängerung (Flag)
- `AutomaticExtensionAmountMonths` → `[Vertraege.Verlaengerung]` - Verlängerungsdauer (Monate)
- `IsContingent` → `[Vertraege.KontingentVertrag]` - Kontingent-Vertrag (Flag)
- `ContingentKind` → `[Vertraege.KontingentArt]` - Kontingent-Art (FK)
- `IsClick` → `[Vertraege.Stammblattbezogen]` - Click-Counter-Vertrag (Flag)
- `DeductionIntervalKind` → `[Vertraege.AbrechnungIntervallArt]` - Abrechnungsintervall-Typ
- `DeductionIntervalValue` → `[Vertraege.AbrechnungIntervallDauer]` - Abrechnungsintervall Dauer (z.B. Monate)
- `Name` → `[Vertraege.Name]` - Vertragsname/Bezeichnung
- `AdditionalText` → `[Vertraege.Zusatztext]` - Zusatztext/Notizen
- `ReferenceNumber` → `[Vertraege.ReferenzNr]` - Externe Referenznummer
- `ForeignContract` → `[Vertraege.Fremdvertrag]` - Fremdvertrag (Flag)
**Collections**:
- `Positions` → `[VertragPos]` (KeyColumn: VertragI3D = Vertraege.I3D)
---
# HELPDESK & SUPPORT DOMÄNE
## Support-Ticket (Helpdesk)
**Begriff**: Support-Ticket / Helpdesk-Anfrage
**Englisch**: Helpdesk Ticket
**Datenbank-Tabelle**: `hlpdsk_requests`
**Primärschlüssel**: `hlpdsk_requests.I3D`
**Hauptfelder mit DB-Mapping**:
- `I3D` → `[hlpdsk_requests.I3D]` - Eindeutige Ticket-ID
- `Number` → `[hlpdsk_requests.Nummer]` - Externe Ticketnummer (z.B. "TK-2025-12345")
- `Status` → `[hlpdsk_requests.Status]` - Ticket-Status (FK → hlpdsk_status)
- `Priority` → `[hlpdsk_requests.Prioritaet]` - Priorität (FK → hlpdsk_prioritaeten)
- `HelpdeskType` → `[hlpdsk_requests.hlpdsk_typenI3D]` - Ticket-Typ (FK → hlpdsk_typen)
- `MainCategory` → `[hlpdsk_requests.HauptkategorieI3D]` - Hauptkategorie (FK)
- `SubCategory1` → `[hlpdsk_requests.Unterkategorie1I3D]` - Unterkategorie 1 (FK)
- `SubCategory2` → `[hlpdsk_requests.Unterkategorie2I3D]` - Unterkategorie 2 (FK)
**Kunde & Kontakt mit DB-Mapping**:
- `CustomerI3D` → `[hlpdsk_requests.KundeI3D]` - Kunde (FK → Accounts)
- `CustomerName` → `[hlpdsk_requests.KundeName]` - Kundenname (Cache)
- `CustomerEMail` → `[hlpdsk_requests.KundeEMail]` - Kunden-Email
- `ContactPersonI3D` → `[hlpdsk_requests.AnsprechpartnerI3D]` - Kontaktperson (FK → AccountAddressContacts)
- `ContactName` → `[hlpdsk_requests.AnsprechName]` - Kontaktname (Cache)
- `ContactPhone` → `[hlpdsk_requests.AnsprechTelefon]` - Telefon der Kontaktperson
**Sachverhalt mit DB-Mapping**:
- `ShortDescription` → `[hlpdsk_requests.Beschreibung]` - Kurzbeschreibung
- `Description` → `[hlpdsk_requests.Problem]` - Detaillierte Problembeschreibung
- `InternalNote` → `[hlpdsk_requests.InternalNote]` - Interne Notizen
- `SerialNumber` → `[hlpdsk_requests.SerienNr]` - Seriennummer des betroffenen Geräts
- `ErrorNumber` → `[hlpdsk_requests.FehlerNr]` - Fehlercode
- `Documentation` → `[hlpdsk_requests.Dokumentation]` - Dokumentation/Attachments
- `Classification` → `[hlpdsk_requests.Bewertung]` - Klassifizierung (FK → AngebotBewertung)
**Bearbeitung mit DB-Mapping**:
- `ResponsiblePersonI3D` → `[hlpdsk_requests.VerantwortlicherI3D]` - Verantwortlicher Mitarbeiter (FK → Personal)
- `CreatedByI3D` → `[hlpdsk_requests.ErstellerI3D]` - Ersteller (FK → Personal)
- `CreatedDate` → `[hlpdsk_requests.ErfasstAm]` - Erfassungsdatum
- `ChangedByI3D` → `[hlpdsk_requests.GeaendertVonI3D]` - Geändert von (FK → Personal)
- `ChangedDate` → `[hlpdsk_requests.GeaendertDatum]` - Änderungsdatum
- `DueDate` → `[hlpdsk_requests.FaelligAm]` - SLA-Fälligkeitsdatum
- `ClosedAt` → `[hlpdsk_requests.AbgeschlossenAm]` - Abschlussdatum
- `PlannedDurationInHours` → `[hlpdsk_requests.GeplanteDauerInStd]` - Geplante Bearbeitungsdauer (Stunden)
**Vertrag & Abrechnung mit DB-Mapping**:
- `ContractId` → `[hlpdsk_requests.VertragI3D]` - Zugehöriger Vertrag (FK → Vertraege)
- `RechPosI3D` → `[hlpdsk_requests.RechPosI3D]` - Zugehörige Rechnungsposition (FK → RechPos)
- `Calculated` → `[hlpdsk_requests.Berechnet]` - Berechnet/Verrechnet (Flag)
- `IsRMA` → `[hlpdsk_requests.IstRMAFall]` - Ist RMA-Fall (Flag)
**Collections**:
- `HelpdeskTimer` → `[hlpdsk_timer]` (KeyColumn: hlpdsk_requestsI3D = hlpdsk_requests.I3D)
- `TicketTags` → `[TicketTags]` (Many-to-Many via Junction)
---
# HR & PERSONAL DOMÄNE
## Mitarbeiter (Employee)
**Begriff**: Mitarbeiter / Beschäftigter
**Englisch**: Employee
**Datenbank-Tabelle**: `Personal`
**Primärschlüssel**: `Personal.I3D`
**Personalstammdaten mit DB-Mapping**:
- `I3D` → `[Personal.I3D]` - Eindeutige Mitarbeiter-ID
- `PersonnelNumber` → `[Personal.Personalnummer]` - Mitarbeiternummer
- `Lastname` → `[Personal.Nachname]` - Nachname
- `Firstname` → `[Personal.Vorname]` - Vorname
- `Birthday` → `[Personal.Geburtstag]` - Geburtsdatum
- `Street` → `[Personal.Strasse]` - Wohnstraße
- `Zip` → `[Personal.Plz]` - Postleitzahl
- `City` → `[Personal.Wohnort]` - Wohnort
- `Job` → `[Personal.Beruf]` - Beruf/Funktion
- `Phone1` → `[Personal.Telefon]` - Telefon 1
- `Phone2` → `[Personal.Telefon2]` - Telefon 2
- `Fax1` → `[Personal.Fax1]` - Fax
**Beschäftigung mit DB-Mapping**:
- `ContractKind` → `[Personal.VertragsArt]` - Vertragsart (Fest, Befristet, 450€, etc.)
- `ContractPeriod` → `[Personal.Vertragslaufzeit]` - Vertragslaufzeit
- `Salary` → `[Personal.MAKosten]` - Brutto-Gehalt
- `VacationEntitlement` → `[Personal.Urlaubsanspruch]` - Jahresurlaubstage
- `RemainingDaysOfVacation` → `[Personal.Resturlaub]` - Resturlaub
**Audit-Trail mit DB-Mapping**:
- `CreatedDate` → `[Personal.Angelegt_am]` - Erstellungsdatum
- `CreatedFromI3D` → `[Personal.Angelegt_von]` - Ersteller (FK → Personal)
- `ChangedDate` → `[Personal.Aenderung_am]` - Änderungsdatum
- `ChangedFromI3D` → `[Personal.Aenderung_von]` - Geändert von (FK → Personal)
**Besondere Felder mit DB-Mapping**:
- `ForumUsername` → `[Personal.ForumUsername]` - Forum-Benutzername
- `SalutationI3D` → `[Personal.AnredeI3D]` - Anrede (FK → Anrede)
- `CostCenterI3D` → `[Personal.KostenstelleI3D]` - Kostenstelle (FK → Kostenstelle)
- `RootDirI3D` → `[Personal.RootDirI3D]` - Root-Verzeichnis für Dateien (FK → Directorys)
- `DefaultStorageI3D` → `[Personal.StandardLagerI3D]` - Standard-Lager (FK → Warehouses)
**Collections**:
- `Department` → `[PersonalGrpPersZuord]` (Many-to-Many über PersonalGruppen)
---
# FINANZEN & ACCOUNTING DOMÄNE
## Zahlungsbedingung (Payment Terms)
**Begriff**: Zahlungsbedingung / Zahlungsterm
**Englisch**: Payment Terms / Terms and Conditions
**Datenbank-Tabelle**: `Zahkond`
**Primärschlüssel**: `Zahkond.I3D`
**Felder mit DB-Mapping**:
- `I3D` → `[Zahkond.I3D]` - Eindeutige Zahlungsbedingung-ID
- `Name` → `[Zahkond.Bezeichnung]` - Bezeichnung (z.B. "14 Tage netto")
- `Tage` → `[Zahkond.Tage]` - Zahlungsziel (Tage)
- `SkontoProzent` → `[Zahkond.SkontoProzent]` - Skonto % (z.B. 2%)
- `SkontoBis` → `[Zahkond.SkontoBis]` - Tage für Skonto
- `Beschreibung` → `[Zahkond.Beschreibung]` - Vollständige Beschreibung
**Beziehungen**:
- Verwendet in: `[AufKopf.ZahlkondID]`, `[RechKopf.ZahlkondID]`, `[AccountCustomers.ReceiptConditionInvoiceI3D]`, etc.
---
## Kostenträger (Cost Center)
**Begriff**: Kostenträger / Cost Center / Profit Center
**Englisch**: Cost Center
**Datenbank-Tabelle**: `Kostenstelle` (Legacy German), `Kostentraeger` (Kostenträger)
**Primärschlüssel**: `Kostenstelle.I3D` (für Standard-Kostenstellen)
**Felder mit DB-Mapping**:
- `I3D` → `[Kostenstelle.I3D]` - Eindeutige Kostenträger-ID
- `Nummer` → `[Kostenstelle.Nummer]` - Kostenträger-Nummer (z.B. "KT-100")
- `Name` → `[Kostenstelle.Name]` - Bezeichnung
- `Typ` → `[Kostenstelle.Art]` - Typ (FK → KostenstellenArt)
- `Leiter` → `[Kostenstelle.Leiter]` - Verantwortlicher (FK → Personal)
**Verwendung in Belegen**:
- Bestellungen: `[AufKopf.KostentraegerI3D]` → `[Kostenstelle.I3D]`
- Rechnungen: `[RechKopf.KostentraegerI3D]` → `[Kostenstelle.I3D]`
- Positionen: `[AufPos.KostentraegerI3D]` → `[Kostenstelle.I3D]`
---
# KONVENTIONEN & HINWEISE
## Datenbank-Naming-Konventionen
| Aspekt | Konvention | Beispiel | Tabelle |
|--------|-----------|---------|---------|
| Primary Key | Immer `I3D` | `Accounts.I3D` | Alle Tabellen |
| Foreign Key | Suffix `I3D` | `AccountI3D`, `EmployeeI3D` | Alle Tabellen |
| Neue Entwicklung | English Table Names | `Accounts`, `AccountCustomers` | Neue Entities |
| Legacy Systeme | German Table Names | `hlpdsk_requests`, `Vertraege`, `RechKopf` | Alte Entities |
| Versionierung | `CreatedVersion`, `ChangedVersion` | In allen Basistabellen | Performance-Tracking |
## NHibernate Mapping-Struktur
```
Entity Class (z.B. Order)
↓ (FluentNHibernate ClassMapping)
Database Table (z.B. AufKopf)
↓
Entity Properties → Table Columns
↓
Foreign Keys (I3D convention)
```
## Beziehungstypen in der DB
| Typ | Beispiel | Mapping | SQL |
|-----|---------|---------|-----|
| 1:1 | Account-Customer | `AccountI3D` FK | Foreign Key |
| 1:n | Account-Addresses | `AccountI3D` in `AccountAddresses` | Foreign Key |
| n:n | Employee-Department | `PersonalGruppen` (Junction Table) | Junction |
| Collection | Order-Positions | `AufPosI3D` → AufPos table | HasMany |
---
**Version**: 2.0 (mit DB-Mappings)
**Status**: 80% vollständig - weitere Domänen bei Bedarf erweiterbar
**Letzte Aktualisierung**: 2025-12-02
**Format**: [Tabelle.Spalte] für alle Datenbank-Referenzen
### Legende
- `[Tabelle.Spalte]` = Exaktes DB-Mapping
- `(FK → Tabelle)` = Foreign-Key Referenz
- `[TBD]` = To Be Determined (Mapping erforderlich)
- `virtual IList<T>` = NHibernate Collection (1:n Beziehung)