Files
logbuch/types/logbuch.ts
T
admin b5b75e0d77 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>
2026-08-08 12:57:22 +02:00

89 lines
1.9 KiB
TypeScript

export type Kuppel = 'West' | 'Ost' | 'Süd' | 'Pluto';
export type ArtFuehrung = 'RF' | 'SF' | 'PrF' | 'BEOS' | 'SonF' | 'TD' | 'Beob' | 'ToT' | 'Sonst';
export const KUPPELN: Kuppel[] = ['West', 'Ost', 'Süd', 'Pluto'];
export const ARTEN_MAP: Record<ArtFuehrung, string> = {
RF: 'regulär',
SF: 'sonder',
SonF: 'sonnen',
PrF: 'privat',
BEOS: '',
TD: '',
Beob: 'Beobachtung',
ToT: '',
Sonst: 'Sonstiges',
};
export const ARTEN = Object.keys(ARTEN_MAP) as ArtFuehrung[];
export function artLabel(a: ArtFuehrung): string {
return ARTEN_MAP[a] || a;
}
export type SpendeArt = 'bar' | 'ueberw' | 'kasse' | 'keine';
export const SPENDE_MAP: Record<SpendeArt, string> = {
bar: 'bar',
ueberw: 'überw.',
kasse: 'kasse',
keine: 'keine',
};
export const SPENDE_ARTEN = Object.keys(SPENDE_MAP) as SpendeArt[];
export function spendeLabel(s: SpendeArt): string {
return SPENDE_MAP[s] || s;
}
/** Ergebnis der Rückschreibung einer Sonderführung ins Register SoFue2. */
export interface SofueStatus {
status: 'ok' | 'kein_termin' | 'fehler' | 'uebersprungen';
id?: number;
wtermin?: string;
datum?: string;
}
export interface BeoOption {
ID: number;
Kuerzel: string;
Name: string;
}
export interface ObjektOption {
ID: number;
Name: string;
}
export interface SelectedObjekt {
ID: number | null;
Name: string;
}
export interface Wetter {
temp: number;
feuchte: number;
druck: number;
}
export interface LogbuchEintrag {
ID: number;
Kuppel: Kuppel;
ArtFuehrung: ArtFuehrung;
SonderName: string | null;
Spende: SpendeArt | null;
SpendeBetrag: number | null;
Beginn: string;
Ende: string;
Besucher: number;
Bemerkungen: string | null;
WetterTemp: number | null;
WetterFeuchte: number | null;
WetterDruck: number | null;
created_by: number | null;
created_by_kuerzel: string | null;
created_at: string;
BEOs: string;
Objekte: string;
}