v0.5.2: elektra (meterkast 3×25 A, schakelaars met letters op hun lampen, wcd, apparaatgroepen incl. perilex, groepenverklaring met fasen/aardlek, leidingen naar de meterkast met strekkende meters per type, PDF-blad + plattegrond, verplaatsbaar door slepen, bouwfase Elektra met installatiebuizen in 3D); ribbon, bouwfasen, kozijnen, kostenmodel en eerdere ongecommitte wijzigingen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8cdfa21f46
commit
e1a688728c
@@ -0,0 +1,185 @@
|
||||
/*!
|
||||
* 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 }
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user