Published
Edited
Dec 22, 2020
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
betalingskenmerk = ({
fiscaalnummer,
subcode,
jaar,
frequentie,
tijdvak,

}) => {
// eerste acht cijfers met leidende nullen indien minder dan acht cijfers
const eersteachtcijfers = fiscaalnummer
.toString() // converteer getal naar string
.replaceAll(" ", "") // strip enige spaties
.slice(0,8) // pak alleen de eerste acht karakters
.padStart(8, "0") // voeg leidende nullen toe indien minder dan acht karakters

const aangifteperiode = periodes[frequentie]
// tijdvakcode is precies twee cijfers met leidende nul indien kleiner dan 10
const tijdvakcode = (aangifteperiode.startwaarde + +tijdvak - 1)
.toString()
.padStart(2, "0")

const kenmerk = (
eersteachtcijfers
+ "6" // vaste waarde; alleen BD weet waarom
+ jaar.toString()[3] //converteer getal naar string
+ subcode.toString().padStart(2, "0") // getal naar string plus leidende nullen
+ tijdvakcode
+ "0"
)
return controlegetal(kenmerk) + kenmerk
}
Insert cell
controlegetal = kenmerk => {
const gewicht = [2, 4, 8, 5, 10, 9, 7, 3, 6, 1]
const A = [...kenmerk]
.reverse()
.map((k, i) => k * gewicht[i % gewicht.length])
.reduce((som, k) => som + k)
const B = A % 11
return B > 1 ? 11 - B : B === 1 ? 1 : 0 // C

}
Insert cell
Insert cell
Insert cell
periodes = ({
maand: { tijdvakken: 12, startwaarde: 1 },
vierweken: { tijdvakken: 13, startwaarde: 71 },
halfjaar: { tijdvakken: 2, startwaarde: 31 },
jaar: { tijdvakken: 1, startwaarde: 40 },
})
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
loonheffingsnummer = `${fiscaalnummer} ${belastingsoort} ${subcode}`
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more