Standort-Budgetverwaltung


Vom System verwendetes Budgetmodell

Budgets sind im aktuellen Stand an einen Standort gebunden.

Jeder Budgetdatensatz speichert:

  • ein Jahr
  • einen Jahresbetrag
  • optionale Monatsbetraege von Januar bis Dezember

Die Anwendung verhindert doppelte Budgetjahre fuer denselben Standort.

Wo Budgets verwaltet werden

Budgets werden ueber den Relation Manager Budgets innerhalb eines Standortdatensatzes verwaltet.

Die Tabelle zeigt aktuell:

  • Jahr
  • Jahresbetrag

Verfuegbare Aktionen koennen sein:

  • Budget erstellen
  • Neues Budget
  • Bearbeiten
  • Loeschen
  • Endgueltig loeschen
  • Wiederherstellen

Der Budgetbereich ist in den Standortdatensatz eingebettet und nicht als eigene Top-Level-Ressource angelegt.

Budget erstellen

Das Budgetformular hat aktuell zwei Abschnitte.

Budgetjahr

  • Jahr
  • Jahresbetrag

Monatsbetraege

  • Januar bis Dezember

Der Jahresbetrag ist erforderlich und muss null oder groesser sein.

Regeln fuer monatliche Zuweisungen

Die aktuellen Regeln sind:

  • Monatsbetraege sind optional
  • wenn ein Monat leer bleibt, kann die App fuer Budgetpruefungen und Erklaerungen auf den Jahresbetrag zurueckfallen
  • die Summe aller eingetragenen Monatsbetraege darf den Jahresbetrag nicht ueberschreiten

Diese Validierung wird im Relation-Manager-Formular erzwungen.

So funktionieren Budgetpruefungen

Budgetpruefungen werden bei Bestellentwuerfen gegen das Standortbudget des Bestelljahres durchgefuehrt.

Jahresbudgetpruefung

Die App:

  • laedt das Standortbudget fuer das Bestelljahr
  • zieht erfasste Budgettransaktionen vom Jahresbetrag ab
  • vergleicht die Bestellzwischensumme mit dem verbleibenden Jahresbudget

Monatsbudgetpruefung

Die App:

  • ermittelt das Budgetfeld fuer den Bestellmonat
  • zieht erfasste Budgettransaktionen fuer diesen Monat ab
  • vergleicht die Bestellzwischensumme mit dem verbleibenden Monatsbudget

Wichtiges Implementierungsdetail

Budgetpruefungen basieren auf Budgettransaktionen, nicht auf jedem Bestellentwurf in jedem Status.

Das bedeutet, die Berechnung des verbleibenden Budgets basiert auf erfassten Ausgabentransaktionen und nicht auf allen offenen Bestellungen in der Liste.

Budgettransaktionen

Eine Budgettransaktion wird erstellt, wenn eine Bestellung erfolgreich an Shopify gesendet und abgeschlossen wird.

Die Transaktion speichert:

  • das Budget
  • den Bestellentwurf
  • den Betrag
  • eine Beschreibung
  • das Transaktionsdatum

Deshalb beeinflusst abgeschlossene Einkaufsaktivitaet kuenftige Berechnungen zur Budgetverfuegbarkeit.

Policy-basierte Berechtigungen

Der aktuelle Code nutzt mehr als eine Policy-Pruefung rund um Standortbudgets.

Budgetzugriff auf Standortebene

LocationPolicy::manageLocationBudgets() erlaubt Schreibzugriff im Budget-Relation-Manager fuer:

  • CompanyAdmin
  • BudgetAdmin, wenn der Benutzer diesem Standort zugeordnet ist

Autorisierung von Budgetaktionen

Die Aktionen Erstellen, Bearbeiten, Loeschen, Wiederherstellen und Endgueltig loeschen rufen ebenfalls updateLocationBudget auf.

Das bedeutet, die tatsaechliche Sichtbarkeit von Buttons haengt von beidem ab:

  • der Budget-Berechtigungspruefung auf Standortebene
  • der dedizierten Budget-Policy-Methode, die von den Aktionen verwendet wird

Fuer die Dokumentation ist die sicherste benutzerseitige Beschreibung:

  • CompanyAdmin ist die primaere Rolle fuer Budgetverwaltung
  • BudgetAdmin ist fuer die Verwaltung von Budgets an zugewiesenen Standorten vorgesehen
  • andere Rollen sollten fuer Budgetverwaltung als schreibgeschuetzt behandelt werden