-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.ts
91 lines (79 loc) · 3.12 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import {
InvalidArgument,
NotImplementedError,
VehicleType,
type Model,
} from "@motorrijtuigenbelasting/core";
import {
bestelautoOndernemer,
bestelautoParticulier,
kampeerauto,
personenauto,
} from "./vehicleTypes/index.js";
export * from "./rules/index.js";
const model: Model = (params) => {
const {
// provincie,
// brandstof,
// elektrisch_of_waterstof,
weight,
vehicleType,
} = params;
if (typeof vehicleType === "undefined") {
throw new InvalidArgument("vehicleType is missing");
}
if (typeof weight === "undefined") {
throw new InvalidArgument("weight is missing");
}
/**
* Overzicht vrijstellingen motorrijtuigenbelasting
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/vrijstelling_onder_andere_voor_oldtimers/
*
* Not implemented
*/
/**
* Bijzonder tarief motorrijtuigenbelasting
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/bijzonder_tarief/
*
* Not implemented
*/
/**
* Motorrijtuigenbelasting per soort motorrijtuig
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/soort_motorrijtuig/
*/
switch (vehicleType) {
case VehicleType.Personenauto:
/**
* Personenauto
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/soort_motorrijtuig/personenauto
*/
return personenauto(params);
case VehicleType.Kampeerauto:
/**
* Kampeerauto (camper)
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/bijzonder_tarief/kampeerauto-camper
*/
return kampeerauto(params);
case VehicleType["Bestelauto particulier"]:
/**
* Bestelauto
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/soort_motorrijtuig/bestelauto/
*/
return bestelautoParticulier(params);
case VehicleType["Bestelauto gehandicapte"]:
/**
* Bestelauto gehandicapte
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/soort_motorrijtuig/bestelauto/bestelautotarief_voor_gehandicapte_personen
*/
// @todo
break;
case VehicleType["Bestelauto ondernemer"]:
/**
* Bestelauto ondernemer
* https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/auto_en_vervoer/belastingen_op_auto_en_motor/motorrijtuigenbelasting/soort_motorrijtuig/bestelauto/bestelautotarief_voor_ondernemers
*/
return bestelautoOndernemer(params);
}
throw new NotImplementedError();
};
export default model;