Skip to content

Instantly share code, notes, and snippets.

@bwbroersma
Last active December 10, 2019 11:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bwbroersma/30aefe0a572008964adee560180e5a27 to your computer and use it in GitHub Desktop.
Save bwbroersma/30aefe0a572008964adee560180e5a27 to your computer and use it in GitHub Desktop.
Wet schadeloosstelling leden Tweede Kamer - Paragraaf 3 Onkostenvergoedingen - Artikel 8 - in code https://twitter.com/BWBroersma/status/1204365994241789952
// https://www.rijksoverheid.nl/documenten/circulaires/2018/12/20/circulaire-wijzigingen-in-de-financiele-arbeidsvoorwaarden-per-1-januari-2019-voor-de-ambtenaren-werkzaam-in-de-sector-rijk
// https://wetten.overheid.nl/BWBR0004939/2019-07-01#Paragraaf3_Artikel8
const rijkDienstreizen2019 = {
lunch: 15.67,
avondmaaltijd: 23.71,
logies: 103.72,
ontbijt: 10.13,
kleineUitgavenOverdag: 5.07,
kleineUitgavensAvonds: 15.12
},
parameters = {
km: [ 0, 10, 75, 150],
mulA: [100, 100, 55, 0],
mulB: [ 10, 40, 85, 140],
bedragA: (() => {
with(rijkDienstreizen2019) return lunch + avondmaaltijd + kleineUitgavenOverdag + kleineUitgavensAvonds
})(),
bedragB: Object.values(rijkDienstreizen2019).reduce((acc, v) => acc + v, 0),
},
waarde = i => parameters.mulA[i] * parameters.bedragA + parameters.mulB[i] * parameters.bedragB,
vergoeding = km => {
km = Math.min(Math.round(km), parameters.km.slice(-1));
let i = parameters.km.indexOf(km);
if (i != -1) return Math.round(waarde(i));
let j = parameters.km.findIndex(v => v > km);
i = j - 1;
kmDomein = parameters.km[j] - parameters.km[i];
const b = (km - parameters.km[i]) / kmDomein,
a = 1 - b;
return Math.round(a * waarde(i) + b * waarde(j));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment