diff --git a/src/routes/settings.import.tsx b/src/routes/settings.import.tsx index e2661c2..5f8b29d 100644 --- a/src/routes/settings.import.tsx +++ b/src/routes/settings.import.tsx @@ -890,13 +890,19 @@ function ImportPage() { } } - // required check (defer case_id for time/expense — async step may create one) + // required check (defer case_id for time/expense — async step may create one; + // defer client_id for invoices — async step may auto-create an archived client) const deferCaseId = (cfg.table === "time_entries" || cfg.table === "expenses") && !transformed.case_id && (transformed._caseext || transformed._casenum || transformed._casename); + const deferClientId = + cfg.table === "invoices" && + !transformed.client_id && + (transformed._clientext || transformed._clientname); const missing = cfg.required.find((k) => { if (k === "case_id" && deferCaseId) return false; + if (k === "client_id" && deferClientId) return false; return !transformed[k] && transformed[k] !== 0; }); if (missing) { bumpSkip(`missing required: ${missing}`); continue; }