Files
logbuch/types/logbuch.ts
T
admin cfa1852d5e feat: Spende-Feld bei Sonderführungen — Version 1.12.0
Neue Spalten Spende (bar/ueberw/kasse/keine) und SpendeBetrag in der
Tabelle logbuch. Im Formular erscheint die Auswahl nur bei Art 'SF',
rechts neben Name/Gruppe; bei 'bar' zusätzlich ein Pflichtfeld für den
Betrag. Anzeige in der Liste als Unterzeile unter der Art.

Migration migrate_spende.sql muss vor dem Deploy manuell eingespielt
werden; die zugehörige SQL-Änderung liegt in DB4js_all.php im
sternwarte-Repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 09:38:53 +02:00

81 lines
1.7 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;
}
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;
}