Eerste commit
This commit is contained in:
@@ -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('.', ',');
|
||||
}
|
||||
Reference in New Issue
Block a user