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
Ga naar Zijbalk → Beheer → Cost Calculations → Objectdefinities (route
/cost-definitions).Klik op New — het dialoogvenster Objectdefinitie wordt geopend.
Vul in:
Veld Wat in te voeren Naam Leesbare havennaam, bijv. Den HelderSysteemcode pcc<Haven>zonder spaties, bijv.pccDenHelder. Alleen alfanumerieke tekens en underscores.Application area Cost calculation Beschikbaar Schakelaar aan Klik op Save.
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:
- Klik op de detailspagina op Add in de kaart Velddefinities.
- Stel Veld soort in op
Linked object. - Stel Object to link in op de nautische schipskoppeling.
- Laat Groep volledig leeg.
- Stel Zichtbaarheid in op de eerste optie in de dropdown (Public).
- Klik op Save.
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):
- Klik nogmaals op Add.
- Stel Veld soort in op
Linked object. - Stel Object to link in op het bijbehorende subobject (maak de subobjecten eerst aan — zie Stap 4).
- Voer een Groep-naam in, bijv.
Inbound,Outbound,Basis information. Dit wordt de tabblad-header. - Stel Zichtbaarheid in op de eerste optie (Public).
- 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 soort | Gebruik voor |
|---|---|
| Integer | Gehele getallen: GT, LOA, diepgang (in dm), aantal sleepboten |
| Decimal | Decimale getallen: berekende producten zoals m²×dagen |
| Boolean | Ja/nee-vlaggen, bijv. "ISPS van toepassing" |
| List | Een keuze uit een vaste set, bijv. scheepstype, aanloopperiode, locatie |
| Single line text | Vrije tekstinvoer waar nodig |
| Linked object | Secties 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.
- Ga naar Objectdefinities en klik op New.
- Vul een naam in (bijv.
Den Helder Pilots) en een Systeemcode (bijv.pccDenHelderPilots). - Stel Application area in op Cost definition (niet "Cost calculation" — dat is alleen voor het hoofdhavenobject).
- Klik op Save, open vervolgens het subobject en voeg de bladvelden toe.
Typische bladvelden van een loodssubobject:
| Veld | Type | Opmerkingen |
|---|---|---|
draft | Integer | Werkelijke diepgang in dm |
pilotQuantity | Integer | Aantal loodsen |
areaFrom | List | Vertrekgebied; Keys gebruikt in gebiedsgatevoorwaarden |
Een typisch havenspecifiek subobject (bijv. pccDenHelderPort) kan bevatten:
| Veld | Type | Voorbeeldsleutels / opmerkingen |
|---|---|---|
havengeldCategory | List | zeeschip, cruise, fishing |
location | List | nieuwe_diep, other |
ispsApplicable | Boolean | Ja/nee |
callPeriod | List | day, 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.