feat: Sonderführungen automatisch im Register SoFue2 nachtragen — Version 1.13.0

Beim Speichern eines Logbuch-Eintrags der Art 'SF' wird der passende
Datensatz in SoFue2 über das Datum gesucht und dort stattgefunden=1,
anzahl_echt, bezahlt und remarks gesetzt. Gibt es an dem Tag mehrere
Führungen, gewinnt die zeitlich nächstgelegene.

Das Ergebnis kommt als Feld 'sofue' aus der PHP-Bridge zurück und wird
über dem Formular angezeigt — grün bei Erfolg, gelb, wenn keine Führung
gefunden wurde. Der Logbuch-Eintrag wird in dem Fall trotzdem gespeichert.
Die Meldung liegt in MainClient, weil LogbuchForm beim Bearbeiten durch
onSaved() neu gemountet wird.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-08 12:57:22 +02:00
parent cfa1852d5e
commit b5b75e0d77
10 changed files with 78 additions and 13 deletions
+4 -4
View File
@@ -1,4 +1,4 @@
import type { BeoOption, LogbuchEintrag, ObjektOption, SelectedObjekt, Wetter } from '@/types/logbuch';
import type { BeoOption, LogbuchEintrag, ObjektOption, SelectedObjekt, SofueStatus, Wetter } from '@/types/logbuch';
const PHP_DB_URL = process.env.PHP_DB_URL ?? 'http://localhost:8080/DB4js_all.php';
@@ -97,7 +97,7 @@ export interface CreateLogbuchData {
created_by: number;
}
export async function createLogbuch(data: CreateLogbuchData): Promise<{ id: number }> {
export async function createLogbuch(data: CreateLogbuchData): Promise<{ id: number; sofue?: SofueStatus }> {
return call('LB_CREATE_LOGBUCH', data);
}
@@ -106,8 +106,8 @@ export async function updateLogbuch(
userId: number,
userRole: string,
data: Omit<CreateLogbuchData, 'created_by'>
): Promise<void> {
await call('LB_UPDATE_LOGBUCH', { id, user_id: userId, user_role: userRole, ...data });
): Promise<{ sofue?: SofueStatus }> {
return call('LB_UPDATE_LOGBUCH', { id, user_id: userId, user_role: userRole, ...data });
}
export async function deleteLogbuch(