Eerste commit

This commit is contained in:
jf
2026-09-27 14:21:31 +00:00
commit de4ff128cb
295 changed files with 47374 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
// Laat de prijs meelopen terwijl een adverteerder datums en aantallen invult.
//
// Waarom dit een apart bestand is en niet een <script> in de pagina zelf: die pagina wordt
// statisch weergegeven, en Blazor vervangt bij het navigeren alleen de HTML. Een <script> dat
// op die manier binnenkomt wordt NIET uitgevoerd. Het gevolg was een prijs die niets deed zodra
// je via een link op het boekscherm kwam - en wel werkte als je de pagina zelf ververste, wat
// het extra verwarrend maakt. Dit bestand staat in de kop van elke pagina en is er dus altijd.
//
// Wat hier wordt uitgerekend is een gemak, geen bedrag. De server rekent bij het indienen zelf
// uit wat het kost; wie met deze pagina knoeit, verandert alleen wat hij zelf ziet staan.
window.mbPrijs = function () {
var vak = document.getElementById('prijsvak');
var vanaf = document.getElementById('vanaf');
var tot = document.getElementById('tot');
var perUur = document.getElementById('peruur');
var prijs = document.getElementById('prijs');
var som = document.getElementById('prijssom');
if (!vak || !vanaf || !tot || !perUur || !prijs) return;
var tarief = parseInt(vak.dataset.tarief, 10);
var bodem = parseInt(vak.dataset.bodem, 10);
var max = parseInt(vak.dataset.max, 10);
var van = Date.parse(vanaf.value);
var totdat = Date.parse(tot.value);
var keer = parseInt(perUur.value, 10);
function schrijf(bedrag, uitleg) {
prijs.textContent = bedrag;
if (som) som.textContent = uitleg;
}
if (isNaN(van) || isNaN(totdat) || isNaN(keer)) return schrijf('—', '');
if (totdat < van) return schrijf('—', 'de einddatum ligt voor de begindatum');
if (keer < 1) return schrijf('—', 'vul in hoe vaak per uur');
if (keer > max) return schrijf('—', 'hoogstens ' + max + ' keer per uur');
var dagen = Math.round((totdat - van) / 86400000) + 1;
var centen = Math.max(dagen * keer * tarief, bodem);
schrijf(euro(centen),
'(' + dagen + ' dagen × ' + keer + ' per uur × ' + tarief + ' cent, ' +
'met een minimum van ' + euro(bodem) + ')');
};
// Zelfde vorm als op de server: een komma, want hier leest een mens het.
function euro(centen) {
return '€ ' + (centen / 100).toFixed(2).replace('.', ',');
}