Zum Hauptinhalt springen

Tarifgruppen & Gebühren anlegen

Jede Gebührenart eines Hafens (Hafengeld, Lotsgeld, Festmacher, Abfall …) ist eine Tarifgruppe. In jeder Gruppe legen Sie einen oder mehrere Tarife an — die einzelnen Gebührenzeilen. Diese Seite zeigt beides.

Den Bildschirm Tariff groups öffnen

Gehen Sie zu Navigation → Admin → Cost Calculations → Tariff groups (Route /invoicing-and-tariffs/tariff-groups/cost-calculation).

Zum Anlegen und Ändern von Gruppen brauchen Sie das Recht Tariff admin (invoices.tariff_admin).

Schritt 1 — Eine Tarifgruppe anlegen

Klicken Sie auf New und tragen Sie die Gruppendaten ein:

FeldWas Sie eintragen
NameSprechender Name, z. B. Den Helder — Hafengeld
System codepcc_<hafen>_<kategorie>, z. B. pcc_denhelder_havengeld
Currency codeEUR
Starts onErster Gültigkeitstag der Gebühren, z. B. 2026-01-01
Ends onLeer lassen für unbefristet
UI TemplateBeschriftung der Ergebnisüberschrift, z. B. Hafengeld
Tariff group typeInvoice calculation
Application areaSchreibgeschützt — steht bereits auf cost calculation

Klicken Sie auf Save. Sie sind jetzt auf der Detailseite der Tarifgruppe.

Schritt 2 — Die Gruppe an Ihren Hafen binden

Jede Tarifgruppe braucht eine Hafenbedingung. Ohne sie gelten ihre Tarife für alle Häfen, nicht nur für Ihren.

Öffnen Sie auf der Karte Business logic den Reiter Conditions und klicken Sie auf Add:

FeldWert
Logic typeCustom
Field typeConditionString
Source field$.__DefinitionSystemCode
String operatorEquals
ValuepccDenHelder (der System code Ihres Hafens — exakt so, wie Sie ihn am Objekt gesetzt haben)

Klicken Sie bei der Bedingung auf Save. Wiederholen Sie das bei jeder Tarifgruppe, die Sie für diesen Hafen anlegen.

Schritt 3 — Die Tarife (Gebühren) anlegen

Gehen Sie von der Detailseite der Tarifgruppe in ihre Tarifliste und klicken Sie auf Add tariff. Das Tarifformular hat eine Karte Details und eine Karte Business logic.

Felder, die jeder Tarif hat:

FeldWas Sie eintragen
NameName der Gebühr, z. B. Hafengeld — Seeschiff Nieuwe Diep
Amount typeNumber
Tariff typeRegular
Currency codeEUR
System codeKurzer, stabiler Code
UI TemplateBeschriftung der Ergebniszeile — Pflicht, darf nicht leer sein
Starts on / Ends onPassend zur Gültigkeit der Gebührenordnung

Das Feld Amount source bestimmt, welche Form die Gebühr hat. Wählen Sie Direct oder Matrix und füllen Sie die Felder der jeweiligen Form aus.


Form A — Satz pro Einheit

Nehmen Sie diese Form, wenn die Gebühr ein fester Satz mal einer Schiffsangabe ist (z. B. 0,93 € pro GT).

Karte Details:

FeldWert
Amount sourceDirect
AmountDer Satz, z. B. 0.93
UI Templatez. B. Port dues ({{$.ship.gt}} × 0.93) — die Vorlage in Backticks setzen, wenn sie wörtlich stehen soll, sonst die echte Handlebars-Syntax im Feld verwenden

Business logic — Reiter Calculations → Add:

FeldWert
Logic typeCustom
Field typeCalculationPricePerUnit
Source field$.ship.gt (oder $.ship.loa, $.tugsInbound.numberOfTugs usw.)
Calculation order0

Damit multipliziert die Engine den Betrag mit dem Wert unter diesem Feldpfad.

Business logic — Reiter Conditions (optional): Gilt der Satz nur für bestimmte Schiffstypen, ergänzen Sie ein ConditionArray (siehe Bedingungsübersicht unten).

Beispiel Den Helder: Hafengeld für Seeschiffe am Nieuwe Diep — Amount 0.93, CalculationPricePerUnit mit Source field $.ship.gt.


Form B — Staffelwert

Nehmen Sie diese Form, wenn die Gebühr davon abhängt, in welche Stufe ein Wert fällt (z. B. Lotsgeld nach Tiefgangsstufe).

Karte Details:

FeldWert
Amount sourceMatrix
Amount0
Amount source templateDer Handlebars-Schlüssel, der die Staffel steuert, z. B. {{pilotsOutbound.draft}}

Business logic — Reiter Conditions → ein ConditionNumeric ergänzen, das gegen Null- und Leereingaben schützt:

FeldWert
Field typeConditionNumeric
Source fieldpilotsOutbound.draft
Numeric operatorGreaterThan
Value0

Füllen Sie danach die Karte Tariff Matrix (siehe Schritt 4).

Beispiel Den Helder: Lotsgeld einwärts — Amount source Matrix, Amount source template {{pilotsInbound.draft}}, 169 Tiefgangsstufen in dm.


Form C — Pauschale

Nehmen Sie diese Form, wenn die Gebühr ein fester Betrag ist, wahlweise nur für bestimmte Schiffstypen oder Bedingungen.

Karte Details:

FeldWert
Amount sourceDirect
AmountDie feste Gebühr, z. B. 120

Business logic — Reiter Conditions: Bedingungen ergänzen, die einschränken, wann der Tarif greift (z. B. ein ConditionArray auf $.podh.callPeriod mit dem Key day). Gilt die Gebühr immer, lassen Sie die Bedingungen leer.

Legen Sie keinen Knoten CalculationPricePerUnit an — bei einer Pauschale braucht es keinen.

Beispiel Den Helder: Festmacher tagsüber — Amount 120, ConditionArray auf $.podh.callPeriod = ["day"].


Schritt 4 — Die Tarifmatrix füllen (Stufen)

Die Karte Tariff Matrix erscheint nur bei Amount source = Matrix. Bei Direct-Tarifen wird sie nicht angezeigt.

Jede Zeile ist eine Stufe:

SpalteHinweise
NameBezeichnung der Stufe, z. B. 0–270 dm
System codeWird vorbelegt; änderbar
AmountSatz für diese Stufe
FromUntergrenze (einschließlich). Die erste Stufe muss bei 0 beginnen.
ToObergrenze (ausschließlich). Die letzte Stufe sollte eine große Zahl nehmen, z. B. 9999, damit alle Werte abgedeckt sind.
UI TemplateBeschriftung der Ergebniszeile dieser Stufe

Die Stufen müssen lückenlos aneinandergrenzen — das To einer Zeile ist das From der nächsten. Bei Lücken liefert die Staffel nichts zurück.

Mit Add unten auf der Karte hängen Sie eine leere Zeile an. Füllen Sie jede Zeile und klicken Sie auf Save.

Stufen aus Excel importieren

Bei großen Stufentabellen (das Lotsgeld in Den Helder hat 169 Zeilen) nutzen Sie den Import:

  1. Stellen Sie sicher, dass Amount source = Matrix am Tarif gespeichert ist — die Schaltfläche Import Tariff Matrix erscheint nur in der Ansicht, nicht im Bearbeitungsmodus.
  2. Klicken Sie in der Kopfleiste auf Import Tariff Matrix.
  3. Klicken Sie im Dialog zuerst auf Download example file, um den richtigen Spaltenaufbau zu bekommen.
  4. Tragen Sie Ihre Stufen in die Beispieldatei ein.
  5. Setzen Sie das Häkchen bei Replace existing tariff matrix, wenn vorhandene Zeilen überschrieben werden sollen.
  6. Klicken Sie auf Import.

Fangen Sie immer mit Download example file an — die Spaltenreihenfolge der Vorlage ist die, die der Import erwartet.


Bedingungen im Überblick

Bedingungen legen Sie auf dem Reiter Conditions der Karte Business logic an — am Tarif, nicht an der Gruppe. Ausnahme ist die Hafenbindung, die an die Gruppe gehört.

BedingungstypWannWichtige Felder
ConditionStringHafenbindung — den System code des Hafens abgleichenSource field $.__DefinitionSystemCode, String operator Equals, Value = pccDenHelder
ConditionArrayAbgleich gegen ein Listenfeld (Schiffstyp, Gebiet, Anlaufzeitraum …)Source field z. B. $.general.shipType, Array operator Any, Values = Array aus Listen-Keys wie tanker_lng, bulkcarrier
ConditionNumericZahlenvergleiche (Tiefgang > 0, GT zwischen zwei Werten …)Numeric operator: Between / Equals / GreaterThan / SmallerThan
ConditionBooleanJa/Nein-FelderBoolean operator True oder False
ConditionBoolean

Der Typ ConditionBoolean (für Felder wie ispsApplicable) war in den Referenzdaten, mit denen diese Dokumentation entstand, nicht enthalten. Das Formular zeigt die Operatoren True und False — prüfen Sie das Ergebnis an einer echten booleschen Bedingung, bevor Sie sie produktiv einsetzen.

„Einmal pro Anlauf“ — Zeilengruppierung

Manche Gebühren sollen pro Hafenanlauf nur einmal greifen, egal wie viele Tarifzeilen passen — etwa eine Abfallgebühr, die nicht doppelt zählen darf. Für diese Zeilengruppierung gibt es keinen Bildschirm; sie braucht eine Konfigurationsänderung durch das SHIPM8-Team. Wenden Sie sich an den Support, wenn eine Gebühr das benötigt.