MHD nur mit Monat und Jahr in Web-UI und iOS-App
Setzt den Backend-Umbau in beiden Oberflaechen um. Die Genauigkeit gilt jeweils fuer den ganzen Einlager-Vorgang und nicht je Charge: Auf einer Packung steht entweder ein Tagesdatum oder nur Monat/Jahr, gemischt kommt das nicht vor. Vorbelegt wird sie aus dem Produkt, laesst sich aber im Vorgang umstellen. Web-UI: Umschalter im Kopf der Chargenliste; das Eingabefeld wechselt zwischen type="date" und type="month". Im Produktformular gibt es das neue Feld "MHD-Angabe" neben der Gebinde-Bezeichnung. Anzeige laeuft ueber den Settings-Context, damit das eingestellte Datumsformat erhalten bleibt und Monatsangaben ueberall als "09/2026" erscheinen (Auslagern, Uebersicht, Chargentabelle). Die Abgelaufen-Warnung prueft bei Monatsangaben gegen den Monatsletzten - sonst haette eine Packung schon am Monatsersten als abgelaufen gegolten. iOS: Auswahl "Tagesdatum / nur Monat/Jahr" im Einlagern-Formular und beim Anlegen eines Artikels. SwiftUI hat keinen DatePicker ohne Tag, deshalb ein eigener MonthYearPicker aus zwei Auswahlfeldern; die Jahresliste reicht zwei Jahre zurueck (bereits abgelaufene Ware) und fuenfzehn nach vorn (Konserven). Die Chargenauswahl beim Auslagern zeigt Monatsangaben ebenfalls ohne Tag. Getestet: Web-Build (vite) und iOS-Geraetebuild laufen fehlerfrei durch, die App ist auf dem iPhone installiert. Das Verhalten in der Oberflaeche ist noch nicht von Hand durchgeklickt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { createContext, useCallback, useContext, useEffect, useState } from "react";
|
||||
import { api } from "./api";
|
||||
import { useAuth } from "./auth";
|
||||
import { formatDate } from "./units";
|
||||
import { formatBestBefore, formatDate } from "./units";
|
||||
|
||||
export const DATE_FORMAT_KEY = "date_format";
|
||||
const DEFAULT_FORMAT = "de";
|
||||
@@ -9,6 +9,7 @@ const DEFAULT_FORMAT = "de";
|
||||
const SettingsContext = createContext({
|
||||
dateFormat: DEFAULT_FORMAT,
|
||||
formatDate: (iso) => formatDate(iso, DEFAULT_FORMAT),
|
||||
formatBestBefore: (iso, precision) => formatBestBefore(iso, precision, DEFAULT_FORMAT),
|
||||
reload: () => {},
|
||||
});
|
||||
|
||||
@@ -34,6 +35,8 @@ export function SettingsProvider({ children }) {
|
||||
const value = {
|
||||
dateFormat,
|
||||
formatDate: (iso) => formatDate(iso, dateFormat),
|
||||
// MHD: Monatsangaben erscheinen als "09/2026", Tagesdaten im gewaehlten Format.
|
||||
formatBestBefore: (iso, precision) => formatBestBefore(iso, precision, dateFormat),
|
||||
reload,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user