186 lines
8.7 KiB
JavaScript
186 lines
8.7 KiB
JavaScript
/*!
|
||
* Tectum
|
||
* Copyright © 2026 Machiel Heinen.
|
||
* Alle rechten voorbehouden. Gebruik uitsluitend met schriftelijke toestemming.
|
||
* Zie LICENTIE.md.
|
||
*/
|
||
// ============================================================
|
||
// cost/cost-defaults.js — STANDAARD kosten en tijden (datafile).
|
||
//
|
||
// Dit zijn de fabrieksinstellingen. Aanpassen kan op twee manieren:
|
||
// 1. in de app: menu Instellingen > Kosten & tijden (opgeslagen in deze
|
||
// browser, exporteren/importeren als JSON);
|
||
// 2. hier in dit bestand (geldt dan voor iedereen als nieuwe standaard).
|
||
// Tip: exporteer in de app en neem de waarden hier over.
|
||
//
|
||
// Een JS-bestand i.p.v. JSON omdat de app ook via file:// draait (fetch van
|
||
// lokale bestanden werkt daar niet).
|
||
//
|
||
// Opbouw: groep -> items. Elk item: { label, unit, value } of met
|
||
// options: { sleutel: 'tekst' } voor een keuze. Nieuwe items verschijnen
|
||
// vanzelf in het instellingenvenster; de berekening (CostModel) moet ze
|
||
// natuurlijk wel gebruiken. Bedragen excl. btw. Tijden in seconden tenzij
|
||
// anders vermeld. LET OP: de getallen zijn voorlopige schattingen.
|
||
// ============================================================
|
||
|
||
window.COST_DEFAULTS = {
|
||
arbeid: {
|
||
label: 'Arbeid',
|
||
items: {
|
||
uurloon: { label: 'Uurloon productie (all-in)', unit: '€/u', value: 45 },
|
||
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' },
|
||
// Machinetijd testontwerp (409 stuks, 818 sneden): ~2 u 55 min.
|
||
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 }
|
||
}
|
||
},
|
||
|
||
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 },
|
||
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 }
|
||
}
|
||
},
|
||
|
||
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 }
|
||
}
|
||
},
|
||
|
||
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 },
|
||
montage: { label: 'Montage per kozijn', unit: 's', value: 5400 }
|
||
}
|
||
},
|
||
|
||
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 (incl. bekabeling)', unit: 's', value: 900 }
|
||
}
|
||
},
|
||
|
||
bedrijf: {
|
||
label: 'Afschrijving & bedrijfskosten',
|
||
items: {
|
||
machines: { label: 'Afschrijving machines (zaagrobot, gereedschap, inrichting) per productie-uur', unit: '€/u', value: 8 },
|
||
slijtage: { label: 'Slijtage en verbruik gereedschap (zaagbladen, bits, accu’s) per productie-uur', unit: '€/u', value: 2 },
|
||
huisvesting: { label: 'Huisvesting productiehal (huur, energie) per productie-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 }
|
||
}
|
||
}
|
||
};
|