MVG MaterialHub – API-Dokumentation
Übersicht
Die API berechnet die optimale Aufteilung von Zuschnitten auf Stangen und minimiert dabei Materialverschnitt.
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | / | Weboberfläche |
POST | /api | Zuschnittsoptimierung berechnen |
POST | /api/import-csv | CSV-Datei importieren |
GET | /documentation | Diese Dokumentation |
POST /api
Anfrage
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
zuschnitte |
[[Länge, Stk], ...] |
Ja | Gewünschte Zuschnitte (Länge in mm, Stückzahl) |
saegeblattstaerke |
Float |
Nein | Sägeblattstärke in mm (Standard: 3.2) |
max_stangenlaenge |
Float |
Nein | Stangenlänge in mm (Standard: 6000) |
Beispielanfrage
{
"zuschnitte": [[3000, 5], [2000, 3], [1000, 8]],
"saegeblattstaerke": 3.2,
"max_stangenlaenge": 6000
}
Antwort
| Feld | Typ | Beschreibung |
|---|---|---|
optimierte_zuschnitte | Array | Zuschnitte pro Stange, absteigend sortiert |
stangen_anzahl | Integer | Benötigte Stangen |
gesamtschnitte | Integer | Gesamtanzahl Schnitte |
gesamtverschnitt | Float | Gesamtverschnitt in mm |
gesamte_anschlagwechsel | Integer | Anschlagwechsel gesamt |
verschnitt_pro_stange | Array | Verschnitt je Stange (mm) |
schnitte_pro_stange | Array | Schnitte je Stange |
anschlagwechsel_pro_stange | Array | Anschlagwechsel je Stange |
kosten | Object | Kostenberechnung (siehe unten) |
Kosten-Objekt (Kundenpreis)
| Feld | Beschreibung |
|---|---|
stueckpreis_netto | Preis pro Schnitt netto (auf 5 Cent gerundet) |
kosten_netto | Gesamtpreis netto (Schnitte x Stückpreis) |
kosten_mwst | MwSt-Betrag (19%) |
kosten_brutto | Gesamtpreis brutto |
mwst_satz | 0.19 |
staffel | Interne Preisstufen (Referenz) |
Kosten-Objekt:
intern (interne Kalkulation)| Feld | Beschreibung |
|---|---|
kosten_netto | Interne Selbstkosten |
ruest_pauschale | Rüstpauschale (8,00 EUR) |
schnitte_kosten_netto | Staffel-basierte Schnittkosten |
anschlagwechsel_kosten_netto | Anschlagwechsel-Kosten |
stangenwechsel_kosten_netto | Stangenwechsel-Kosten |
marge_netto | Kundenpreis – Selbstkosten |
marge_prozent | Marge in % |
staffel_details | Aufschlüsselung pro Staffelstufe |
Fehlerantworten (HTTP 400)
{"error": "Fehlende Felder: zuschnitte"}
{"error": "Stangenlänge muss > 0 und Sägeblattstärke >= 0 sein"}
{"error": "Zuschnitt 7000mm + Sägeblatt passt nicht auf Stange (6000mm)"}
POST /api/import-csv
Anfrage
| Parameter | Typ | Beschreibung |
|---|---|---|
csv |
String (Base64) |
Base64-codierte CSV. Format: Länge;Stückzahl pro Zeile |
Beispiel
// Anfrage
{"csv": "MzAwMDs1CjIwMDA7Mw=="}
// Decodiert: "3000;5\n2000;3"
// Antwort
{"zuschnitte": [[3000.0, 5], [2000.0, 3]]}
Preismodell
Der Kundenpreis ist ein einfacher Stückpreis pro Schnitt. Intern wird nach Vollkosten kalkuliert, der Stückpreis auf 5 Cent aufgerundet.
Kundenpreis-Berechnung
Stückpreis = aufrunden(Selbstkosten / Schnitte, 0.05)
Kundenpreis = Schnitte × Stückpreis
Kundenpreis = Schnitte × Stückpreis
Interne Kalkulation (Selbstkosten)
| Position | Preis netto |
|---|---|
| Rüstpauschale (pro Auftrag) | 8,00 EUR |
| Schnitt 1–20 | 1,85 EUR / Stk. |
| Schnitt 21–100 | 1,65 EUR / Stk. |
| Schnitt 101+ | 1,45 EUR / Stk. |
| Anschlagwechsel | 0,75 EUR / Stk. |
| Stangenwechsel (ab 2. Stange) | 0,50 EUR / Stk. |
Alle Preise netto zzgl. 19% MwSt.
Algorithmus
Branch-and-Bound (bis 30 Einzelstücke)
Findet die optimale Lösung mit minimaler Stangenanzahl. Best-Fit Decreasing als obere Schranke, Pruning bei aussichtslosen Zweigen.
Best-Fit Decreasing (Fallback > 30 Stücke)
Heuristik: Zuschnitte absteigend sortiert, jeweils in die am besten passende Stange. Bevorzugt Stangen mit gleicher Länge (Anschlag-Optimierung).