Ga naar hoofdinhoud

Het havensinvoerobject aanmaken

Het invoerobject is het formulier dat mensen invullen voor elke kostenberekening. Het bestaat uit een hoofdobject (de havensjabloon) dat is gekoppeld aan meerdere subobjecten (loodsen, sleepboten, havenspecifieke invoer). Je bouwt dit alles onder Objectdefinities.

Voordat je begint

Je hebt de machtiging Custom data admin nodig (custom_data.custom_data_admin). Zonder deze machtiging verschijnt Objectdefinities niet in de Admin-hub.

Stap 1 — Het havenobject aanmaken

  1. Ga naar Zijbalk → Beheer → Cost Calculations → Objectdefinities (route /cost-definitions).

  2. Klik op New — het dialoogvenster Objectdefinitie wordt geopend.

  3. Vul in:

    VeldWat in te voeren
    NaamLeesbare havennaam, bijv. Den Helder
    Systeemcodepcc<Haven> zonder spaties, bijv. pccDenHelder. Alleen alfanumerieke tekens en underscores.
    Application areaCost calculation
    BeschikbaarSchakelaar aan
  4. Klik op Save.

Systeemcode is permanent

De Systeemcode is de identiteit van de haven in de volledige inrichting. Elke tariefgroep die je later aanmaakt, moet naar precies deze code verwijzen. De code wordt vergrendeld na opslaan en kan niet meer worden gewijzigd.

Het nieuwe object verschijnt in de lijst. Klik erop om de pagina Objectdefinitie details te openen.

Stap 2 — De invoersecties toevoegen

Secties zijn velden van het type Gekoppeld object op het hoofdhavenobject. Elke sectie wordt een tabblad (of de bovenste kaart) op het berekeningsformulier.

De scheepssectie (de rootgroep)

Voeg het eerste gekoppelde veld toe voor het schip:

  1. Klik op de detailspagina op Add in de kaart Velddefinities.
  2. Stel Veld soort in op Linked object.
  3. Stel Object to link in op de nautische schipskoppeling.
  4. Laat Groep volledig leeg.
  5. Stel Zichtbaarheid in op de eerste optie in de dropdown (Public).
  6. Klik op Save.
Twee regels die een crash voorkomen

1. De Groep van het scheepsveld moet leeg zijn. Door Groep leeg te laten wordt dit veld de _root-groep, die de calculator vereist. Als geen enkel veld een lege Groep heeft, geeft de calculator de fout "Cannot convert undefined or null to object" en werkt het niet meer.

2. De Zichtbaarheid van elk veld moet Public zijn. De optielabels van de dropdown Zichtbaarheid ontbreken in de huidige app — de opties verschijnen zonder label. Selecteer altijd de eerste / bovenste optie, dat is Public. Als een veld is ingesteld op de tweede of derde optie (Private of Hidden), laat de calculator dat veld weg uit het formulier. Als alle velden in een sectie niet-Public zijn, treedt de bovenstaande crash op.

Havenspecifieke secties (loodsen, sleepboten, havenspecifiek)

Voor elke extra sectie (bijvoorbeeld inkomende loodsen, uitgaande loodsen, sleepboten en een havenspecifieke sectie):

  1. Klik nogmaals op Add.
  2. Stel Veld soort in op Linked object.
  3. Stel Object to link in op het bijbehorende subobject (maak de subobjecten eerst aan — zie Stap 4).
  4. Voer een Groep-naam in, bijv. Inbound, Outbound, Basis information. Dit wordt de tabblad-header.
  5. Stel Zichtbaarheid in op de eerste optie (Public).
  6. Klik op Save.

Stap 3 — De velden toevoegen

Subobjectvelden zijn de daadwerkelijke invoervelden (GT, diepgang, aantal sleepboten, scheepstype, …). Voeg ze toe op de detailspagina van elk subobject via Add.

Veldtypen die je gebruikt

Veld soortGebruik voor
IntegerGehele getallen: GT, LOA, diepgang (in dm), aantal sleepboten
DecimalDecimale getallen: berekende producten zoals m²×dagen
BooleanJa/nee-vlaggen, bijv. "ISPS van toepassing"
ListEen keuze uit een vaste set, bijv. scheepstype, aanloopperiode, locatie
Single line textVrije tekstinvoer waar nodig
Linked objectSecties die verwijzen naar een ander object (gebruikt op het hoofdhavenobject — zie Stap 2)

Lijstvelden en hun sleutels

Wanneer je een List-veld toevoegt, definieer je de opties in de tabel Lijstitems. Elke rij heeft een Label (wat de gebruiker ziet) en een Key (een codestring):

  • De Key is wat tariefvoorwaarden later gebruiken als referentie. Kies korte, stabiele codes — bijvoorbeeld tanker_lng, bulkcarrier, cruise, day, night.
  • Je kunt een Key niet meer wijzigen nadat tariefvoorwaarden ernaar verwijzen, dus stel de codes vast voordat je begint met het toevoegen van tarieven.
  • Vink het selectievakje Moet overeenkomen aan zodat gebruikers geen vrije tekst kunnen invoeren.

Zichtbaarheid en verplicht

Stel Zichtbaarheid in op de eerste optie (Public) voor elk veld — zowel op de gekoppelde sectiervelden van het hoofdhavenobject als op elk bladveld in elk subobject. Zie de waarschuwing hierboven voor de gevolgen als je dit niet doet.

Markeer velden als Verplicht waar van toepassing, zodat de gebruiker kritieke invoer niet leeg kan laten voordat hij op Bereken klikt.

Stap 4 — De subobjecten voor loodsen / sleepboten aanmaken

Subobjecten bevatten de bladvelden voor gespecialiseerde secties. Maak ze aan voordat je ze koppelt in Stap 2.

  1. Ga naar Objectdefinities en klik op New.
  2. Vul een naam in (bijv. Den Helder Pilots) en een Systeemcode (bijv. pccDenHelderPilots).
  3. Stel Application area in op Cost definition (niet "Cost calculation" — dat is alleen voor het hoofdhavenobject).
  4. Klik op Save, open vervolgens het subobject en voeg de bladvelden toe.

Typische bladvelden van een loodssubobject:

VeldTypeOpmerkingen
draftIntegerWerkelijke diepgang in dm
pilotQuantityIntegerAantal loodsen
areaFromListVertrekgebied; Keys gebruikt in gebiedsgatevoorwaarden

Een typisch havenspecifiek subobject (bijv. pccDenHelderPort) kan bevatten:

VeldTypeVoorbeeldsleutels / opmerkingen
havengeldCategoryListzeeschip, cruise, fishing
locationListnieuwe_diep, other
ispsApplicableBooleanJa/nee
callPeriodListday, evening, night

Checklist

Controleer het volgende voordat je verdergaat naar tarieven:

  • Hoofdhavenobject bestaat met Application area = Cost calculation en Beschikbaar = aan.
  • Systeemcode komt overeen met het geplande patroon (pccDenHelder) — kan later niet worden gewijzigd.
  • Eén gekoppeld sectierveld heeft een lege Groep (de scheepssectie — de _root-groep).
  • Alle overige gekoppelde sectiervelden hebben een Groepsnaam (een tabblad-header).
  • Elk veld op elk object heeft Zichtbaarheid = Public (eerste optie).
  • Alle Keys van lijstvelden zijn definitief en stabiel.
  • Subobjecten (loodsen, sleepboten, havenspecifiek) bestaan met Application area = Cost definition.