267 lines
16 KiB
JavaScript
267 lines
16 KiB
JavaScript
/*!
|
||
* Tectum
|
||
* Copyright © 2026 Machiel Heinen.
|
||
* Alle rechten voorbehouden. Gebruik uitsluitend met schriftelijke toestemming.
|
||
* Zie LICENTIE.md.
|
||
*/
|
||
// Alleen noodwaarden: de echte waarden staan in kosten/intern.csv en kosten/leveranciers.csv.
|
||
|
||
window.COST_DEFAULTS = {
|
||
arbeid: {
|
||
label: 'Arbeid',
|
||
items: {
|
||
uurloon: { label: 'Uurloon productie (all-in)', unit: '€/u', value: 55 },
|
||
bezetting: { label: 'Bezetting per productiestap (heftruck, vegen, aangeven): gemiddeld personeel', unit: 'man', value: 2.2 },
|
||
toeslagUren: { label: 'Toeslag indirecte uren (klaarleggen, opruimen, intern transport)', unit: '%', value: 10 },
|
||
qa: { label: 'QA (laatste aanpassingen, klantcontact) over de totale werktijd', unit: '%', value: 4 }
|
||
}
|
||
},
|
||
|
||
zagen: {
|
||
label: 'Zagen',
|
||
items: {
|
||
methode: { label: 'Zaagmethode', options: { robot: 'Zaagrobot', hand: 'Handmatig' }, value: 'robot' },
|
||
robotSnede: { label: 'Robot: tijd per haakse snede', unit: 's', value: 5 },
|
||
robotSchuin: { label: 'Robot: extra tijd per schuine snede', unit: 's', value: 2.5 },
|
||
robotStuk: { label: 'Robot: handling per stuk (invoer, uitvoer, etiket)', unit: 's', value: 15 },
|
||
handFactor: { label: 'Handmatig: factor op de robottijd', unit: '×', value: 7 }
|
||
}
|
||
},
|
||
|
||
verbinden: {
|
||
label: 'Verbindingen (regelwerk)',
|
||
items: {
|
||
schroevenPerVerbinding: { label: 'Schroeven per verbinding (stijl/dorpel op regel)', unit: 'st.', value: 3 },
|
||
eersteSchroef: { label: 'Tijd eerste schroef (gat + schroef + uitlijnen)', unit: 's', value: 10 },
|
||
volgendeSchroef: { label: 'Tijd volgende schroef (gat + schroef)', unit: 's', value: 5 },
|
||
prijsPer1000: { label: 'Inkoop constructieschroeven (6×120)', unit: '€/1000', value: 45 },
|
||
verbindingenPerVloerbalk: { label: 'Verbindingen per vloer-/dakbalk', unit: 'st.', value: 2 },
|
||
dubbelAfstand: { label: 'Dubbele stijl (deur, hoek): schroef verticaal elke', unit: 'mm', value: 100 },
|
||
monteerFactor: { label: 'Monteren: factor op de schroeftijd (incl. lijmen, positioneren)', unit: '×', value: 6 },
|
||
personeel: { label: 'Personeel bij monteren constructie (vloer, wand, dak; i.p.v. de bezetting)', unit: 'man', value: 2 },
|
||
dakFactor: { label: 'Dak: factor op de tijd per schroef (moeilijker werken)', unit: '×', value: 4 }
|
||
}
|
||
},
|
||
|
||
montage: {
|
||
label: 'Montage',
|
||
items: {
|
||
muurVastzetten: { label: 'Muursectie plaatsen en vastzetten', unit: 'min', value: 10 },
|
||
muurPersoneel: { label: 'Personeel bij plaatsen muursectie (i.p.v. de bezetting)', unit: 'man', value: 3 }
|
||
}
|
||
},
|
||
|
||
hout: {
|
||
label: 'Hout',
|
||
items: {
|
||
constructieM3: { label: 'Constructiehout vuren C24 (regelwerk, balken)', unit: '€/m³', value: 550 },
|
||
latwerkM: { label: 'Latwerk (kruislat)', unit: '€/m', value: 0.9 },
|
||
latStukMontage: { label: 'Latwerk: per gezaagd stuk (meten, zagen op locatie, passen)', unit: 's', value: 240 },
|
||
latMeterMontage: { label: 'Latwerk: bevestigen per strekkende meter', unit: 's/m', value: 30 }
|
||
}
|
||
},
|
||
|
||
plaat: {
|
||
label: 'Plaatwerk',
|
||
items: {
|
||
spaanplaatM2: { label: 'Spaanplaat', unit: '€/m²', value: 9 },
|
||
spaanplaatMontage: { label: 'Montage spaanplaat (passen, zagen, plaatsen)', unit: 's/m²', value: 120 },
|
||
osbM2: { label: 'OSB (vloeren, plafonds dak)', unit: '€/m²', value: 12 },
|
||
osbMontage: { label: 'Montage OSB', unit: 's/m²', value: 90 },
|
||
cementplaatM2: { label: 'Cementgebonden plaat (gevel, trasraam)', unit: '€/m²', value: 28 },
|
||
cementplaatMontage: { label: 'Montage cementplaat', unit: 's/m²', value: 240 },
|
||
schroevenPerM2: { label: 'Plaatschroeven per m²', unit: 'st./m²', value: 15 },
|
||
tijdPerPlaatschroef: { label: 'Tijd per plaatschroef', unit: 's', value: 4 },
|
||
plaatschroefPer1000: { label: 'Inkoop plaatschroeven (4×40)', unit: '€/1000', value: 15 }
|
||
}
|
||
},
|
||
|
||
isolatie: {
|
||
label: 'Isolatie',
|
||
items: {
|
||
glaswolM3: { label: 'Glaswol', unit: '€/m³', value: 40 },
|
||
glaswolMontage: { label: 'Montage glaswol', unit: 's/m³', value: 900 },
|
||
steenIsolatieM3: { label: 'Isolatieblok steengevel', unit: '€/m³', value: 120 }
|
||
}
|
||
},
|
||
|
||
gevel: {
|
||
label: 'Gevel',
|
||
items: {
|
||
vochtdoekM2: { label: 'Vochtdoek', unit: '€/m²', value: 1.5 },
|
||
vochtdoekMontageM: { label: 'Montage vochtdoek per strekkende meter wand', unit: 's/m', value: 600 },
|
||
rabatM2: { label: 'Rabat (gevelbekleding)', unit: '€/m²', value: 35 },
|
||
rabatMontage: { label: 'Montage rabat', unit: 's/m²', value: 600 },
|
||
steenM2: { label: 'Steenstrips (gevel + trasraam)', unit: '€/m²', value: 60 },
|
||
steenMontage: { label: 'Montage steenstrips', unit: 's/m²', value: 1800 },
|
||
stucM2: { label: 'Stucwerk gevel (wapening + sierpleister op cementgebonden plaat)', unit: '€/m²', value: 45 },
|
||
stucMontage: { label: 'Stucwerk aanbrengen (wapenen, pleisteren)', unit: 's/m²', value: 1500 },
|
||
felsM2: { label: 'Felsplaten gevel, staande naad (staal, klangen, ondergrond)', unit: '€/m²', value: 70 },
|
||
felsMontage: { label: 'Montage felsplaten gevel (ook dagkanten en hoeken)', unit: 's/m²', value: 2100 }
|
||
}
|
||
},
|
||
|
||
dak: {
|
||
label: 'Dak & dakrand',
|
||
items: {
|
||
dakleerM2: { label: 'Dakleer (EPDM)', unit: '€/m²', value: 18 },
|
||
dakleerMontage: { label: 'Montage dakleer', unit: 's/m²', value: 600 },
|
||
rietM2: { label: 'Riet', unit: '€/m²', value: 90 },
|
||
rietMontage: { label: 'Montage riet', unit: 's/m²', value: 3600 },
|
||
beschotM2: { label: 'Dakbeschot OSB 18 mm (bovenop de sporen)', unit: '€/m²', value: 14 },
|
||
beschotMontage: { label: 'Montage dakbeschot', unit: 's/m²', value: 150 },
|
||
felsM2: { label: 'Felsplaten staande naad (zink/staal, klangen, scheidingslaag)', unit: '€/m²', value: 65 },
|
||
felsMontage: { label: 'Montage felsplaten', unit: 's/m²', value: 1800 },
|
||
boeideelM: { label: 'Boeideel', unit: '€/m', value: 25 },
|
||
boeideelMontage: { label: 'Montage boeideel', unit: 's/m', value: 600 },
|
||
onderplaatM2: { label: 'Onderplaat boeideel', unit: '€/m²', value: 30 },
|
||
onderplaatMontage: { label: 'Montage onderplaat', unit: 's/m²', value: 900 },
|
||
daktrimM: { label: 'Daktrim', unit: '€/m', value: 12 },
|
||
daktrimMontage: { label: 'Montage daktrim', unit: 's/m', value: 300 },
|
||
staalKg: { label: 'Stalen nokbalk IPE S235 (op maat gezaagd, geboord, gegrond)', unit: '€/kg', value: 2.9 },
|
||
nokOplegging: { label: 'Oplegging nokbalk (stalen schoen + bouten), 2 per balk', unit: '€/st.', value: 45 },
|
||
nokPlaatsen: { label: 'Stalen nokbalk plaatsen, stellen en vastzetten', unit: 's', value: 2700 },
|
||
nokVulhoutMontage: { label: 'Vulhout in de holling van de nokbalk aanbrengen (beide zijden)', unit: 's/m', value: 240 },
|
||
nokPersoneel: { label: 'Personeel bij plaatsen nokbalk (i.p.v. de bezetting)', unit: 'man', value: 3 },
|
||
paalHoutM3: { label: 'Paalhout overkapping (eiken, geschaafd)', unit: '€/m³', value: 2400 },
|
||
paalvoet: { label: 'Paalvoet verzinkt, verstelbaar (incl. ankers)', unit: '€/st.', value: 40 },
|
||
paalMontage: { label: 'Paal plaatsen: stellen, aftoppen, vastzetten aan het dak', unit: 's/st.', value: 2700 },
|
||
zijwandM2: { label: 'Zijwand overkapping (regelwerk, cementgebonden plaat en stuc aan beide kanten, fundering)', unit: '€/m²', value: 140 },
|
||
zijwandMontage: { label: 'Zijwand overkapping maken en plaatsen', unit: 's/m²', value: 5400 }
|
||
}
|
||
},
|
||
|
||
vloer: {
|
||
label: 'Vloer & fundering',
|
||
items: {
|
||
afwerkingM2: { label: 'Vloerafwerking', unit: '€/m²', value: 35 },
|
||
afwerkingMontage: { label: 'Montage vloerafwerking', unit: 's/m²', value: 1200 },
|
||
sandwichM2: { label: 'Sandwichpaneel', unit: '€/m²', value: 35 },
|
||
sandwichMontage: { label: 'Montage per sandwichpaneel', unit: 's', value: 600 }
|
||
}
|
||
},
|
||
|
||
afwerking: {
|
||
label: 'Afwerking ruimtes',
|
||
items: {
|
||
valsPlafondM2: { label: 'Vals plafond (regelwerk + gipsplaat, afgewerkt)', unit: '€/m²', value: 38 },
|
||
valsPlafondMontage: { label: 'Montage vals plafond', unit: 's/m²', value: 1800 },
|
||
fiboM2: { label: 'FIBO-wandpaneel (incl. profielen en kit)', unit: '€/m²', value: 70 },
|
||
fiboMontage: { label: 'Montage FIBO-wandpaneel', unit: 's/m²', value: 1500 }
|
||
}
|
||
},
|
||
|
||
kozijnen: {
|
||
label: 'Kozijnen',
|
||
items: {
|
||
raamM2: { label: 'Raamkozijn incl. glas', unit: '€/m²', value: 450 },
|
||
deur: { label: 'Binnen-/buitendeur incl. kozijn', unit: '€/st.', value: 900 },
|
||
voordeur: { label: 'Voordeur incl. kozijn', unit: '€/st.', value: 1800 },
|
||
schuifdeurBlad: { label: 'Schuifdeur per blad (blad, rail of pocket, beslag, aftimmering)', unit: '€/st.', value: 650 },
|
||
montage: { label: 'Montage per kozijn', unit: 's', value: 5400 }
|
||
}
|
||
},
|
||
|
||
inrichting: {
|
||
label: 'Inrichting',
|
||
items: {
|
||
personeel: { label: 'Personeel bij inrichting (installateur/monteur, i.p.v. de bezetting)', unit: 'man', value: 1 },
|
||
toilet: { label: 'Wandcloset met inbouwreservoir, voorzetwand en bedieningsplaat', unit: '€/st.', value: 650 },
|
||
toiletMontage: { label: 'Montage wandcloset (reservoir, voorzetwand, afmonteren)', unit: 's', value: 10800 },
|
||
fontein: { label: 'Fontein met kraan en sifon', unit: '€/st.', value: 220 },
|
||
fonteinMontage: { label: 'Montage fontein', unit: 's', value: 3600 },
|
||
wastafel: { label: 'Badmeubel met wastafel, kraan en spiegel', unit: '€/st.', value: 850 },
|
||
wastafelMontage: { label: 'Montage badmeubel', unit: 's', value: 5400 },
|
||
douche: { label: 'Inloopdouche (douchegoot, glaswand, regendouche-set)', unit: '€/st.', value: 1450 },
|
||
doucheMontage: { label: 'Montage inloopdouche (goot, afschot, glaswand, kraan)', unit: 's', value: 14400 },
|
||
keukenM: { label: 'Keukenblok (kasten, werkblad, spoelbak, apparatuur) per strekkende meter', unit: '€/m', value: 1500 },
|
||
keukenMontage: { label: 'Montage keukenblok', unit: 's/m', value: 3600 },
|
||
kookeilandM: { label: 'Kookeiland (kasten, werkblad) per strekkende meter', unit: '€/m', value: 1300 },
|
||
kookeilandMontage: { label: 'Montage kookeiland', unit: 's/m', value: 3600 },
|
||
kookplaat: { label: 'Inductiekookplaat 4 zones', unit: '€/st.', value: 650 },
|
||
kastM: { label: 'Kledingkast / inbouwkast per strekkende meter', unit: '€/m', value: 550 },
|
||
kastMontage: { label: 'Montage kast', unit: 's/m', value: 1800 },
|
||
boiler: { label: 'Elektrische boiler 80 l incl. inlaatcombinatie', unit: '€/st.', value: 600 },
|
||
boilerMontage: { label: 'Montage boiler', unit: 's', value: 7200 }
|
||
}
|
||
},
|
||
|
||
verlichting: {
|
||
label: 'Verlichting',
|
||
items: {
|
||
gevellamp: { label: 'Gevellamp', unit: '€/st.', value: 45 },
|
||
boeideelSpot: { label: 'Boeideel-spot', unit: '€/st.', value: 25 },
|
||
binnenspot: { label: 'Binnenspot', unit: '€/st.', value: 20 },
|
||
montage: { label: 'Montage per lamp/spot (armatuur plaatsen en aansluiten; leidingen en dozen onder Elektra)', unit: 's', value: 300 }
|
||
}
|
||
},
|
||
|
||
elektra: {
|
||
label: 'Elektra',
|
||
items: {
|
||
personeel: { label: 'Personeel bij elektra (i.p.v. de bezetting)', unit: 'man', value: 1 },
|
||
boorgat: { label: 'Boorgat door stijl, regel of balk (aftekenen, boren, ontbramen)', unit: 's', value: 90 },
|
||
buisLeggen: { label: 'Installatiebuis leggen en bevestigen', unit: 's/m', value: 60 },
|
||
draadTrekken: { label: 'Draad trekken (per meter buis, alle aders)', unit: 's/m', value: 20 },
|
||
kabelLeggen: { label: 'XMvK-kabel leggen en bevestigen (buiten)', unit: 's/m', value: 40 },
|
||
doosPlaatsen: { label: 'Inbouwdoos plaatsen (luchtdicht, hollewand)', unit: 's', value: 240 },
|
||
verdeeldoos: { label: 'Verdeeldoos plaatsen en verbinden', unit: 's', value: 600 },
|
||
spotdoos: { label: 'Spotdoos plaatsen (luchtdicht plafond)', unit: 's', value: 300 },
|
||
vloerdoos: { label: 'Vloerdoos plaatsen (gat in vloer, aansluiten)', unit: 's', value: 1800 },
|
||
afmonteren: { label: 'Afmonteren schakelaar/wcd/apparaataansluiting', unit: 's', value: 300 },
|
||
steekverbinderMontage: { label: 'Steekverbinder module-naad monteren (set m/v)', unit: 's', value: 300 },
|
||
kastMontage: { label: 'Groepenkast plaatsen (kast, hoofdschakelaar, aardlek)', unit: 's', value: 3600 },
|
||
groepMontage: { label: 'Per groep: automaat plaatsen, bedraden, labelen', unit: 's', value: 900 },
|
||
keuring: { label: 'Meten, testen en opleveren (NEN 1010 / NEN 3140)', unit: 's', value: 10800 },
|
||
buis16M: { label: 'Installatiebuis flexibel Ø16', unit: '€/m', value: 0.35 },
|
||
buis19M: { label: 'Installatiebuis flexibel Ø19', unit: '€/m', value: 0.45 },
|
||
buis25M: { label: 'Installatiebuis flexibel Ø25', unit: '€/m', value: 0.8 },
|
||
draad15M: { label: 'VD-draad 1,5 mm² (per ader)', unit: '€/m', value: 0.28 },
|
||
draad25M: { label: 'VD-draad 2,5 mm² (per ader)', unit: '€/m', value: 0.45 },
|
||
xmvkM: { label: 'XMvK 3×1,5 mm²', unit: '€/m', value: 1.25 },
|
||
inbouwdoos: { label: 'Luchtdichte hollewanddoos', unit: '€/st.', value: 1.6 },
|
||
verdeeldoosSt: { label: 'Luchtdichte verdeeldoos', unit: '€/st.', value: 4.5 },
|
||
spotdoosSt: { label: 'Luchtdichte spotdoos', unit: '€/st.', value: 7.5 },
|
||
vloerdoosSt: { label: 'Vloerdoos met dubbele wcd', unit: '€/st.', value: 95 },
|
||
schakelaar: { label: 'Schakelaar enkelpolig (inbouw)', unit: '€/st.', value: 9 },
|
||
afdekraam1: { label: 'Afdekraam 1-voudig', unit: '€/st.', value: 3 },
|
||
afdekraam2: { label: 'Afdekraam 2-voudig', unit: '€/st.', value: 5 },
|
||
wcdDubbel: { label: 'Wandcontactdoos dubbel met randaarde', unit: '€/st.', value: 10 },
|
||
wcdEnkel: { label: 'Wandcontactdoos enkel met randaarde', unit: '€/st.', value: 6 },
|
||
perilex: { label: 'Perilex-wandcontactdoos (kookgroep)', unit: '€/st.', value: 18 },
|
||
werkschakelaar: { label: 'Werkschakelaar (warmtepomp)', unit: '€/st.', value: 28 },
|
||
lasklem: { label: 'Lasklem 3-voudig', unit: '€/st.', value: 0.35 },
|
||
steekverbinder3: { label: 'Steekverbinder 3-polig (set m/v)', unit: '€/set', value: 9 },
|
||
steekverbinder5: { label: 'Steekverbinder 5-polig (set m/v)', unit: '€/set', value: 14 },
|
||
doorvoer: { label: 'Luchtdichte kabeldoorvoer naar buiten', unit: '€/st.', value: 3.5 },
|
||
kast: { label: 'Groepenkast 3-fase leeg (behuizing, kammen, aansluitmateriaal)', unit: '€/st.', value: 180 },
|
||
hoofdschakelaar: { label: 'Hoofdschakelaar 4-polig 40 A', unit: '€/st.', value: 55 },
|
||
aardlek: { label: 'Aardlekschakelaar 2-polig 40 A / 30 mA', unit: '€/st.', value: 40 },
|
||
automaat: { label: 'Installatieautomaat 1P+N (B10/B16)', unit: '€/st.', value: 14 },
|
||
automaat2f: { label: 'Installatieautomaat 2-fase (kookgroep)', unit: '€/st.', value: 30 }
|
||
}
|
||
},
|
||
|
||
bedrijf: {
|
||
label: 'Afschrijving & bedrijfskosten',
|
||
items: {
|
||
machines: { label: 'Afschrijving machines (zaagrobot, gereedschap, inrichting) per uur', unit: '€/u', value: 8 },
|
||
slijtage: { label: 'Slijtage en verbruik gereedschap (zaagbladen, bits, accu’s) per uur', unit: '€/u', value: 2 },
|
||
huisvesting: { label: 'Huisvesting productiehal (huur, energie) per uur', unit: '€/u', value: 6 },
|
||
transportUnit: { label: 'Transport per unit naar de bouwplaats', unit: '€/unit', value: 750 },
|
||
kraan: { label: 'Kraan voor plaatsen woning', unit: '€', value: 1200 }
|
||
}
|
||
},
|
||
|
||
opslag: {
|
||
label: 'Opslagen',
|
||
items: {
|
||
verlies: { label: 'Materiaalverlies (beschadiging, misgezaagd, restmateriaal; naast het berekende snijverlies balken)', unit: '%', value: 5 },
|
||
klein: { label: 'Klein materiaal (lijm, kit, tape, nieten)', unit: '%', value: 3 },
|
||
algemeen: { label: 'Algemene kosten (kantoor, verzekering, garantie) over de kostprijs', unit: '%', value: 5 },
|
||
marge: { label: 'Winstmarge', unit: '%', value: 15 },
|
||
btw: { label: 'Btw', unit: '%', value: 21 }
|
||
}
|
||
}
|
||
};
|