/** * Task CAD-9 – Stuecklisten-Dialog fuer Traversen-Systeme. * * Zeigt die gruppierte Stueckliste (Traversen + Eck-Traversen) * als Tabelle mit Summenzeile; CSV-Download als Datei. */ import React, { useMemo } from 'react'; import { buildBOM, exportBOMCsv } from '../services/bomService'; interface BOMDialogProps { elements: import('../types/cad.types').CADElement[]; onClose: () => void; } const BOMDialog: React.FC = ({ elements, onClose }) => { const bom = useMemo(() => buildBOM(elements), [elements]); const handleDownload = () => { const csv = exportBOMCsv(bom); const blob = new Blob(['\ufeff' + csv], { type: 'text/csv;charset=utf-8' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `stueckliste-traversen-${new Date().toISOString().slice(0, 10)}.csv`; a.click(); URL.revokeObjectURL(url); }; return (
e.stopPropagation()}>

Stückliste – Traversen

{bom.rows.length === 0 ? (
Keine Traversen oder Eck-Traversen in der Zeichnung gefunden.
Platziere zuerst Traversen mit dem Traverse- oder Eck-Traverse-Werkzeug.
) : ( <> {bom.rows.map((r) => ( ))}
Pos Typ Länge (cm) Breite (cm) Anzahl Gesamt
{r.pos} {r.type} {r.length} {r.width} {r.count} {(r.totalCm / 100).toFixed(2)} m
SUMME {bom.totalLengthM.toFixed(2)} m
)}
); }; export default BOMDialog;