Preismatrix¶
Die Preismatrix zeigt Gerätetypen als Zeilen und Preisgruppen als Spalten. Jede Zelle enthält den Preis, den die Preisfindung an einem gewählten Stichtag liefern würde.
Route: /price/matrix · Recht: price_view
Wozu¶
Die Preisliste beantwortet „welche Preise gibt es?". Sie beantwortet nicht „wo fehlt einer?". Genau das ist im Alltag teurer: Für einen Gerätetyp ohne Preis in der Gruppe des Kunden landet die Auftragsposition stillschweigend bei 0,00 und fällt erst beim Rechnungslauf auf.
Die Matrix macht diese Lücken sichtbar. Leere Zellen sind farblich markiert, und über der Tabelle steht, wie viele Zellen der aktuellen Seite belegt sind.
Steuerung¶
| Element | Wirkung |
|---|---|
| Stichtag | Die Matrix zeigt die am gewählten Tag gültigen Preise |
| Kalibrierart | Schränkt auf ISO, DAkkS, … ein; „Alle" ignoriert das Feld |
| Gerätetyp | Volltextsuche über den Typnamen |
| Gerätekategorie | Schränkt die Zeilen auf eine oder mehrere Gerätekategorien ein |
Gerätekategorie ist nicht Preisgruppe
Die Gerätekategorie ist die fachliche Einordnung des Geräts („Druckmessgeräte") und dieselbe, die auch das Inventar benutzt. Sie steht auf der Zeilenachse. Die Preisgruppe bildet die Spalten, und die Preiskategorie ist der Preis-Container der Geräteachse — drei verschiedene Dinge mit ähnlichen Namen.
Der Stichtag ist mehr als Kosmetik: Preise mit Gültigkeitszeitraum wechseln damit sichtbar. Ein Blick auf den 1. Januar zeigt, ob die neue Preisrunde vollständig hinterlegt ist, bevor sie wirksam wird.
Zellen bearbeiten¶
Ein Klick auf eine Zelle öffnet den Preisdialog — bei einer belegten Zelle zum Bearbeiten, bei einer leeren zum Anlegen. Gerätetyp und Preisgruppe sind dabei bereits gesetzt; ist eine Kalibrierart gefiltert, wird sie übernommen.
Das ist der eigentliche Zeitgewinn gegenüber der Liste: Wer dort einen fehlenden Preis nachträgt, muss Gerätetyp und Preisgruppe von Hand zusammensuchen.
Bearbeiten erfordert price_edit. Ohne das Recht bleibt die Matrix eine reine
Leseansicht.
Umfang¶
Die Matrix paginiert über die Gerätetypen; die Preisgruppen bilden alle Spalten. Bei sehr vielen Gruppen scrollt die Tabelle horizontal, die Gerätetyp-Spalte bleibt stehen.
API¶
Antwort:
{
"data": {
"categories": [{ "id": "…", "name": "Standard" }],
"rows": [
{
"type_id": "…",
"type_name": "Fluke 87V",
"cells": {
"<preisgruppen-id>": {
"price_id": "…",
"price": 120.0,
"tax": 19.0,
"unit": "EA",
"complexity": null,
"start_date": null,
"end_date": null
}
}
}
]
},
"meta": {
"total": 120,
"page": 1,
"per_page": 25,
"covered_cells": 18,
"total_cells": 50
}
}
Ein Schlüssel unter cells existiert nur dort, wo ein Preis gilt. Ein
fehlender Schlüssel ist die Lücke — es gibt keinen Null-Wert, der erst
interpretiert werden müsste.
Die Zellen werden serverseitig über dieselbe Preisfindung aufgelöst wie eine Auftragsposition. Matrix und Auftrag können deshalb nicht auseinanderlaufen.