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

View File

@@ -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)