"use client"; import { useActionState, useState } from "react"; import type { AktionsErgebnis } from "@/server/actions/kunden"; import { laufzeitAnlegenAktion } from "@/server/actions/rechnungen"; const LEER: AktionsErgebnis = {}; /** Ein Jahr minus einen Tag – dieselbe Rechnung wie beim Vorschlag aus dem Agenten-Report. */ function endeAus(start: string): string { if (!start) return ""; const datum = new Date(`${start}T00:00:00Z`); datum.setUTCFullYear(datum.getUTCFullYear() + 1); datum.setUTCDate(datum.getUTCDate() - 1); return datum.toISOString().slice(0, 10); } /** * Laufzeit von Hand anlegen (#043). * * Der Normalfall ist der Vorschlag aus dem Agenten-Report. Von Hand braucht man es, wenn ein Host * (noch) kein Ablaufdatum meldet – etwa weil der Key erst bestellt ist – oder wenn ein * zurückliegendes Lizenzjahr nachgetragen werden soll. */ export function LaufzeitAnlegen({ hosts, }: { hosts: { id: string; hostname: string; kundeName: string | null; subKey: string | null }[]; }) { const [ergebnis, aktion, laeuft] = useActionState(laufzeitAnlegenAktion, LEER); const [hostId, setHostId] = useState(""); const [key, setKey] = useState(""); const [start, setStart] = useState(""); const [ende, setEnde] = useState(""); const gewaehlt = hosts.find((host) => host.id === hostId); return (
); }