Logwin Validierungsregeln Sea & Air Freight
Vollständige Geschäftslogik-Engine fßr Logwin See- und Luftfracht-Rechnungen mit Incoterm-Validierung und Multi-Währungs-Unterstßtzung
Logwin Service-Abdeckung
Seefracht (FCL/LCL) und Luftfracht mit differenzierter Validierung nach Transportart
đ˘ SEEFRACHT (Sea Freight)
ASC-Rechnungen
Container-basierter Transport per Seefracht mit vollständiger Vorlauf-, Hauptlauf- und Nachlauf-Validierung
Rechnungsnummern-Präfix: ASC (z.B. ASC25008124)
Transporttypen: 20'DC, 40'DC, 40'HC, 45'HC
Routen: Brasilien â Deutschland, TĂźrkei â Europa
Währungen: USD (Ursprung), EUR (Ziel)
GebĂźhren: Frachtkosten, Vorlaufkosten, Nachlaufkosten, THC, T1-Abfertigung
Transporttypen: 20'DC, 40'DC, 40'HC, 45'HC
Routen: Brasilien â Deutschland, TĂźrkei â Europa
Währungen: USD (Ursprung), EUR (Ziel)
GebĂźhren: Frachtkosten, Vorlaufkosten, Nachlaufkosten, THC, T1-Abfertigung
âď¸ LUFTFRACHT (Air Freight)
FRA-Rechnungen
Expressversand per Luftfracht mit gewichtsbasierter Abrechnung
Rechnungsnummern-Präfix: FRA (z.B. FRA25027122)
Gewichtsbasis: Tatsächliches Gewicht + Volumengewicht
Routen: Frankfurt â Asien, Europa â weltweit
Währung: EUR
GebĂźhren: Frachtkosten, Vorlaufkosten, x-Ray GebĂźhr, Handling
Gewichtsbasis: Tatsächliches Gewicht + Volumengewicht
Routen: Frankfurt â Asien, Europa â weltweit
Währung: EUR
GebĂźhren: Frachtkosten, Vorlaufkosten, x-Ray GebĂźhr, Handling
đ Incoterm-Validierung
Automatische PrĂźfung der GebĂźhrenstruktur basierend auf Incoterm
FOB (Free On Board) Regel
Kritisch
Bei FOB-Incoterm dĂźrfen KEINE Vorlaufkosten (Pre-Carriage) berechnet werden
Validierungslogik:
IF (Incoterm = "FOB") AND (Vorlaufkosten > 0) THEN
â FEHLER "Vorlaufkosten bei FOB-Incoterm nicht erlaubt"
Erkannte Vorlauf-GebĂźhren:
⢠"Vorlaufkosten" / "Truck (Origin)"
⢠"Pre-Carriage Charges"
⢠"Origin Trucking"
IF (Incoterm = "FOB") AND (Vorlaufkosten > 0) THEN
â FEHLER "Vorlaufkosten bei FOB-Incoterm nicht erlaubt"
Erkannte Vorlauf-GebĂźhren:
⢠"Vorlaufkosten" / "Truck (Origin)"
⢠"Pre-Carriage Charges"
⢠"Origin Trucking"
đ Incoterm-Extraktion:
Parsing-Pattern: "FRANKATUR: FOB gebze" oder "FCA SCHROEDER"Validierung: Incoterm.toUpperCase() === 'FOB'
FCA (Free Carrier) / CIF / EXW
Standard
Bei anderen Incoterms werden Vorlaufkosten normal validiert
FCA: Vorlaufkosten erlaubt, wenn vereinbart
CIF: Alle Kosten bis Zielhafen inklusive
EXW: Käufer trägt alle Transportkosten
CIF: Alle Kosten bis Zielhafen inklusive
EXW: Käufer trägt alle Transportkosten
Steuer-Validierung (MwSt.)
Automatische Prßfung der 19% Mehrwertsteuer auf inländische Nachlaufkosten
19% MwSt. auf Nachlaufkosten
Pflicht
Alle Nachlaufkosten (Destination Charges) in Deutschland unterliegen der 19% Mehrwertsteuer
Steuerpflichtige GebĂźhren:
⢠Nachlaufkosten / Truck (Destination)
⢠Terminal Handling Charges (DTHC)
⢠T1 Abfertigung
⢠Documentation Fees (inland)
Validierung:
IF (GebĂźhr.includes("Nachlaufkosten")) THEN
â INFO "19% MwSt. PrĂźfung erforderlich"
⢠Nachlaufkosten / Truck (Destination)
⢠Terminal Handling Charges (DTHC)
⢠T1 Abfertigung
⢠Documentation Fees (inland)
Validierung:
IF (GebĂźhr.includes("Nachlaufkosten")) THEN
â INFO "19% MwSt. PrĂźfung erforderlich"
đ§Ž Steuerberechnung:
Netto-Betrag: 1.258,00 EURMwSt. 19%: 1.258,00 Ă 0.19 = 239,02 EUR
Brutto-Betrag: 1.258,00 + 239,02 = 1.497,02 EUR
Steuerfreie Positionen
Ausnahme
Internationale Seefracht und ausländische Vorlaufkosten sind steuerfrei
Steuerfreie Gebßhren (§ 4 UStG):
⢠Frachtkosten (Ocean Freight)
⢠Vorlaufkosten (Origin Charges)
⢠Origin THC
⢠Export Documentation
Vermerk auf Rechnung: "Steuerfrei 1."
⢠Frachtkosten (Ocean Freight)
⢠Vorlaufkosten (Origin Charges)
⢠Origin THC
⢠Export Documentation
Vermerk auf Rechnung: "Steuerfrei 1."
Multi-Währungs-Verarbeitung
Extraktion und Validierung von USD/EUR Beträgen mit Wechselkursen
USD â EUR Konvertierung
Automatisch
System extrahiert Wechselkurs aus Rechnungszeilen und validiert die Umrechnung
Format-Beispiel:
"Frachtkosten USD 7.800,00 @ 1,124928 â 6.933,78 EUR"
Extraktion:
⢠USD-Betrag: 7.800,00
⢠Wechselkurs: 1,124928
⢠EUR-Betrag: 6.933,78
Regex-Pattern:
USD\s+([\d,.]+)\s+@\s+([\d,.]+)
"Frachtkosten USD 7.800,00 @ 1,124928 â 6.933,78 EUR"
Extraktion:
⢠USD-Betrag: 7.800,00
⢠Wechselkurs: 1,124928
⢠EUR-Betrag: 6.933,78
Regex-Pattern:
USD\s+([\d,.]+)\s+@\s+([\d,.]+)
đą Umrechnungsvalidierung:
Berechnung: USD_Betrag á Wechselkurs = EUR_BetragBeispiel: 7.800,00 á 1,124928 = 6.933,78 EUR
Toleranz: Âą0,02 EUR (Rundungsdifferenz)
Reine EUR-Positionen
Standard
Nachlaufkosten und deutsche GebĂźhren werden direkt in EUR abgerechnet
EUR-GebĂźhren:
⢠Nachlaufkosten: Container-basiert
⢠Terminal Handling (DTHC): 270,00 EUR / 20'DC
⢠T1 Abfertigung: 40,00 EUR
⢠Luftfracht: Alle Positionen in EUR
Format-Beispiel: "1.258,00 EUR" (ohne Wechselkurs)
⢠Nachlaufkosten: Container-basiert
⢠Terminal Handling (DTHC): 270,00 EUR / 20'DC
⢠T1 Abfertigung: 40,00 EUR
⢠Luftfracht: Alle Positionen in EUR
Format-Beispiel: "1.258,00 EUR" (ohne Wechselkurs)
đ Intelligentes Manuelles PrĂźf-System
Prioritätsbasierte automatische Erkennung von Sonderfällen mit Orange-Warnsystem
ABSENDER-Extraktion aus OCR-Text
Das System extrahiert automatisch den Absender aus der Rechnung (Tabellen-Format mit "ABSENDER | EMPFĂNGER" Spalten) und wendet basierend darauf prioritätsbasierte Validierungsregeln an.
đ Prioritäts-Reihenfolge (hĂśchste zuerst):
1. SCHULZ-SENDER â Ăberschreibt alle anderen Regeln2. DEMURRAGE/DETENTION â VerzĂśgerungsgebĂźhren
3. FEHLENDE REFERENZ â Ziellager unbekannt
4. ANDERER JOST-WORKFLOW â Andere Jost-Entität
5. AUSSCHREIBUNG â Jost-Warenausgang ohne Biebesheim
đ´ Priorität 1: Schulz-Sender
HĂCHSTE PRIORITĂT
Alle Sendungen von Schulz S/A (Brasilien-Partner) erfordern IMMER manuelle PrĂźfung - Ăźberschreibt alle anderen Regeln
Erkennung:
⢠ABSENDER enthält "Schulz" oder "SCHULZ"
⢠Regex: /schulz/i (case-insensitive)
Beispiel OCR-Text:
"ABSENDER EMPFĂNGER
Schulz S/A Jost-Werke Deutschland GmbH"
Reason-Code: schulz_sender
UI-Status: đ Schulz-Sendung - Manuelle PrĂźfung
Aktion: Alle Positionen auf PRĂFEN, Sonderkonditionen beachten
⢠ABSENDER enthält "Schulz" oder "SCHULZ"
⢠Regex: /schulz/i (case-insensitive)
Beispiel OCR-Text:
"ABSENDER EMPFĂNGER
Schulz S/A Jost-Werke Deutschland GmbH"
Reason-Code: schulz_sender
UI-Status: đ Schulz-Sendung - Manuelle PrĂźfung
Aktion: Alle Positionen auf PRĂFEN, Sonderkonditionen beachten
đ Priorität 2: Demurrage/Detention
VERZĂGERUNGS-GEBĂHREN
Standgeld und ContainerverzÜgerungskosten - Ursache und Verantwortlichkeit klären
Erkennung:
⢠Charge-Beschreibung enthält "demurrage", "detention" oder "standgeld"
⢠Case-insensitive Matching
Beispiele:
⢠"Container Demurrage"
⢠"Detention Charges"
⢠"Standgeld - 5 Tage"
Reason-Code: demurrage_detention
UI-Status: đ Demurrage/Detention - Manuelle PrĂźfung
Aktion: Gegen Free-Time-Vereinbarungen prßfen, Verantwortung klären
⢠Charge-Beschreibung enthält "demurrage", "detention" oder "standgeld"
⢠Case-insensitive Matching
Beispiele:
⢠"Container Demurrage"
⢠"Detention Charges"
⢠"Standgeld - 5 Tage"
Reason-Code: demurrage_detention
UI-Status: đ Demurrage/Detention - Manuelle PrĂźfung
Aktion: Gegen Free-Time-Vereinbarungen prßfen, Verantwortung klären
đĄ Priorität 3: Fehlende Referenz
ZIELLAGER UNBEKANNT
Wenn "IHRE REFERENZ / PO NUMMER" leer ist, kann das Ziellager nicht bestimmt werden
Erkennung:
⢠Feld "IHRE REFERENZ / PO NUMMER" ist leer oder nur Whitespace
⢠Gilt fßr ALLE Absender (auch nicht-Jost)
Logik:
IF (reference.trim() === '') THEN
â Manual Review erforderlich
Reason-Code: missing_reference
UI-Status: đ Referenz fehlt - Manuelle PrĂźfung
Aktion: Ziellager identifizieren (Biebesheim/Polen/etc.)
⢠Feld "IHRE REFERENZ / PO NUMMER" ist leer oder nur Whitespace
⢠Gilt fßr ALLE Absender (auch nicht-Jost)
Logik:
IF (reference.trim() === '') THEN
â Manual Review erforderlich
Reason-Code: missing_reference
UI-Status: đ Referenz fehlt - Manuelle PrĂźfung
Aktion: Ziellager identifizieren (Biebesheim/Polen/etc.)
đľ Priorität 4: Anderer Jost-Workflow
ANDERE ENTITĂT
Sendungen an andere Jost-Entitäten (kein "Biebesheim" in Referenz) - anderer Workflow zuständig
Erkennung:
⢠Referenz existiert (nicht leer)
⢠ABER: Referenz enthält NICHT "Biebesheim" (typo-tolerant)
⢠Regex: /[bi]*ebeshe[il]m/i
Typo-Toleranz:
⢠Akzeptiert: "Biebesheim", "iebesheim", "ebesheim", "Bebesheim"
⢠Toleriert fehlende fßhrende Buchstaben und i/l Verwechslungen
Beispiel-Referenzen:
â "PO: 669647/SE217206748 Biebesheim" â Normale Validierung
â "PO: 123456/SE789012345" (kein Biebesheim) â Manual Review
Reason-Code: other_jost_entity
UI-Status: đ Anderer Jost-Workflow - Manuelle PrĂźfung
Aktion: An zuständigen Workflow weiterleiten
⢠Referenz existiert (nicht leer)
⢠ABER: Referenz enthält NICHT "Biebesheim" (typo-tolerant)
⢠Regex: /[bi]*ebeshe[il]m/i
Typo-Toleranz:
⢠Akzeptiert: "Biebesheim", "iebesheim", "ebesheim", "Bebesheim"
⢠Toleriert fehlende fßhrende Buchstaben und i/l Verwechslungen
Beispiel-Referenzen:
â "PO: 669647/SE217206748 Biebesheim" â Normale Validierung
â "PO: 123456/SE789012345" (kein Biebesheim) â Manual Review
Reason-Code: other_jost_entity
UI-Status: đ Anderer Jost-Workflow - Manuelle PrĂźfung
Aktion: An zuständigen Workflow weiterleiten
đ˘ Priorität 5: Ausschreibung (Jost-Warenausgang)
OUTBOUND SHIPMENT
Wenn Jost-Werke der Absender ist (nicht Empfänger) und kein Biebesheim in Referenz - Ausschreibungs-Workflow
Erkennung:
⢠ABSENDER ist "Jost-Werke Deutschland GmbH"
⢠Referenz existiert
⢠ABER: Kein "Biebesheim" in Referenz
Beispiel OCR-Text:
"ABSENDER EMPFĂNGER
Jost-Werke Deutschland GmbH Jost Japan Co., Ltd."
Bedeutung:
Jost verschickt Ware (Export) statt zu empfangen (Import)
â Anderer Tarif-Workflow (Ausschreibung)
Reason-Code: no_biebesheim
UI-Status: đ Ausschreibung - Manuelle PrĂźfung
Aktion: Ausschreibungs-Tarife anwenden, Export-Validierung
⢠ABSENDER ist "Jost-Werke Deutschland GmbH"
⢠Referenz existiert
⢠ABER: Kein "Biebesheim" in Referenz
Beispiel OCR-Text:
"ABSENDER EMPFĂNGER
Jost-Werke Deutschland GmbH Jost Japan Co., Ltd."
Bedeutung:
Jost verschickt Ware (Export) statt zu empfangen (Import)
â Anderer Tarif-Workflow (Ausschreibung)
Reason-Code: no_biebesheim
UI-Status: đ Ausschreibung - Manuelle PrĂźfung
Aktion: Ausschreibungs-Tarife anwenden, Export-Validierung
đ¨ Orange Warn-System:
Summary Widget: đ Orange Statusanzeige mit spezifischem TitelAudit Log: Orange Warnung mit Grund-Erklärung
Charge Items: Alle Positionen auf "PRĂFEN" Status
Detailed Table: Orange Hinterlegung der Bemerkungen
Status-Texte:
⢠schulz_sender â "Schulz-Sendung - Manuelle PrĂźfung"
⢠demurrage_detention â "Demurrage/Detention - Manuelle PrĂźfung"
⢠missing_reference â "Referenz fehlt - Manuelle PrĂźfung"
⢠other_jost_entity â "Anderer Jost-Workflow - Manuelle PrĂźfung"
⢠no_biebesheim â "Ausschreibung - Manuelle PrĂźfung"
Tarif-Zuordnung (ETD-basiert)
Automatische Auswahl des gĂźltigen Tarifblatts basierend auf Abgangsdatum (ETD)
Intelligente Datum-Extraktion
Das System extrahiert das ETD (Estimated Time of Departure) aus der BELADUNG-Spalte der Rechnung und wählt automatisch das passende Tarifblatt aus.
| Tarifblatt | GĂźltigkeit | Routen | Status |
|---|---|---|---|
| Q1 V1 (01.01.2025) | 01.01.2025 - 31.01.2025 | Brasilien, TĂźrkei â DE/PL | Aktiv |
| Q1 V2 (01.02.2025) | 01.02.2025 - 31.03.2025 | Brasilien, TĂźrkei â DE/PL | Aktiv |
| Q2 V1 (01.04.2025) | 01.04.2025 - 30.04.2025 | Brasilien, TĂźrkei â DE/PL | Aktiv |
| Q2 V2 (01.05.2025) | 01.05.2025 - 30.06.2025 | Brasilien, TĂźrkei â DE/PL | Aktiv |
| Q3 V1 (01.07.2025) | 01.07.2025 - 31.07.2025 | Brasilien, TĂźrkei â DE/PL | Aktiv |
| Q3 V2 (01.08.2025) | 01.08.2025 - 30.09.2025 | Brasilien, TĂźrkei â DE/PL | Aktiv |
đ
ETD-Extraktion Logik:
1. Finde Zeile mit "BELADUNG" und "ETD"2. Extrahiere nächste Zeile mit Datumsangaben
3. Wähle drittes Datum (BELADUNG-Spalte)
4. Format: DD-Mmm-YY (z.B. "24-Aug-25")
5. Vergleiche mit Tarif-GĂźltigkeiten
6. Wähle ältesten passenden Tarif
Routen-Struktur (Lanes)
Vordefinierte Transport-Lanes mit spezifischen Tarifen pro Route und Containertyp
đ§đˇ Brasilien â Deutschland
LOG 1.x
Hauptrouten von brasilianischen Häfen nach Hamburg (DEHAM)
Lane LOG 1: BRIOA (ItajaĂ) â DEHAM
Lane LOG 1.2: BRPNG (ParanaguĂĄ) â DEHAM
Lane LOG 1.3: BRSSZ (Santos) â DEHAM
Beispiel LOG 1.3 (20'DC):
⢠Ocean Freight: 2.150 USD
⢠Truck Origin: 1.900 USD
⢠Truck Destination: 1.455 EUR
⢠Destination THC: 270 EUR
Lane LOG 1.2: BRPNG (ParanaguĂĄ) â DEHAM
Lane LOG 1.3: BRSSZ (Santos) â DEHAM
Beispiel LOG 1.3 (20'DC):
⢠Ocean Freight: 2.150 USD
⢠Truck Origin: 1.900 USD
⢠Truck Destination: 1.455 EUR
⢠Destination THC: 270 EUR
đšđˇ TĂźrkei â Europa
LOG 2-4
Routen von Gebze (TĂźrkei) nach Polen und Deutschland
Lane LOG 2-3: TRGEB (Gebze) â PLGDY (Gdynia)
Lane LOG 4: TRGEB â PLGDY (45'HC Special)
Beispiel LOG 2 (20'DC):
⢠Ocean Freight: 1.795 USD
⢠Truck Destination: 850 EUR
⢠Destination THC: 184 EUR
Besonderheit LOG 4 (45'HC):
⢠All-inclusive Rate: 3.750 USD
⢠Truck Origin/Destination: inklusive
⢠Keine separaten THC-Charges
Lane LOG 4: TRGEB â PLGDY (45'HC Special)
Beispiel LOG 2 (20'DC):
⢠Ocean Freight: 1.795 USD
⢠Truck Destination: 850 EUR
⢠Destination THC: 184 EUR
Besonderheit LOG 4 (45'HC):
⢠All-inclusive Rate: 3.750 USD
⢠Truck Origin/Destination: inklusive
⢠Keine separaten THC-Charges
Implementierungsstatus
Ăbersicht der implementierten und geplanten Funktionen
| Feature | Status | Version |
|---|---|---|
| OCR Text-Extraktion PDF â Strukturierter Text |
â Live | v1.0 |
| Header-Parsing Rechnungsnummer, Datum, Sendungsnummer, ETD |
â Live | v1.0 |
| Charge-Extraktion USD/EUR Beträge mit Wechselkursen |
â Live | v1.0 |
| Incoterm-Validierung FOB Pre-Carriage Check |
â Live | v1.0 |
| Steuer-Validierung 19% MwSt. auf Nachlaufkosten |
â Live | v1.0 |
| Intelligentes Manuelles Prßf-System Prioritätsbasierte ABSENDER-Erkennung mit 5 Trigger-Typen |
â Live | v1.0 |
| ABSENDER-Extraktion Tabellen-Format OCR-Parsing |
â Live | v1.0 |
| Schulz-Sender Detection HÜchste Priorität, ßberschreibt alle Regeln |
â Live | v1.0 |
| Demurrage/Detention Erkennung VerzĂśgerungsgebĂźhren-Warnung |
â Live | v1.0 |
| Biebesheim-Validierung Typo-tolerante Referenz-PrĂźfung |
â Live | v1.0 |
| Ausschreibungs-Erkennung Jost-Warenausgang (Outbound) Detection |
â Live | v1.0 |
| Orange Warn-System UI-weite Statusanzeigen mit Reason-Codes |
â Live | v1.0 |
| ETD-basierte Tarif-Auswahl Automatische Tarifblatt-Zuordnung |
â Live | v1.0 |
| Tarif-Datenbank 6 Quartals-Tarife (Q1-Q3 2025) |
â Live | v1.0 |
| Detaillierte Tarif-Validierung Lane-basierter Preis-Vergleich |
â Live | v1.0 |
| Währungskonvertierungs-Check USDâEUR Validierung |
â Live | v1.0 |