import OmsorgButton from "../../components/ui/OmsorgButton"; import { useValueListItems } from "../../app/useValueListItems"; export const emptyContractForm = { contractType: "", startDate: "", endDate: "", status: "", weeklyHours: "", hourlyWage: "", allowancesDescription: "", overtimeRules: "", vacationDaysPerYear: "", probationPeriodMonths: "", }; export function contractToFormValues(contract) { return { contractType: contract.contractType ?? "", startDate: contract.startDate ?? "", endDate: contract.endDate ?? "", status: contract.status ?? "", weeklyHours: contract.weeklyHours ?? "", hourlyWage: contract.hourlyWage ?? "", allowancesDescription: contract.allowancesDescription ?? "", overtimeRules: contract.overtimeRules ?? "", vacationDaysPerYear: contract.vacationDaysPerYear ?? "", probationPeriodMonths: contract.probationPeriodMonths ?? "", }; } export function contractFormToPayload(form, { employeeId, includeStatus = false } = {}) { const payload = { contractType: form.contractType, employeeId, facilityId: null, startDate: form.startDate, endDate: form.endDate || null, weeklyHours: form.weeklyHours === "" ? null : Number(form.weeklyHours), hourlyWage: form.hourlyWage === "" ? null : Number(form.hourlyWage), allowancesDescription: form.allowancesDescription.trim() || null, overtimeRules: form.overtimeRules.trim() || null, vacationDaysPerYear: form.vacationDaysPerYear === "" ? null : Number(form.vacationDaysPerYear), probationPeriodMonths: form.probationPeriodMonths === "" ? null : Number(form.probationPeriodMonths), }; if (includeStatus) { payload.status = form.status; } return payload; } export default function ContractForm({ form, onChange, includeStatus = false }) { const { items: contractTypes } = useValueListItems("ContractType"); const { items: contractStatuses } = useValueListItems("ContractStatus"); function updateField(field) { return (event) => onChange({ ...form, [field]: event.target.value }); } return (
{includeStatus && ( )}
); } export function FormActions({ onCancel, isSaving, submitLabel }) { return (
Abbrechen {isSaving ? "Speichert..." : submitLabel}
); }