Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-19 01:10:15 +00:00
co-authored by renee-png
parent b2633ce214
commit f348121e61
+8 -8
View File
@@ -716,6 +716,10 @@ function ImportPage() {
// transform
const transformed = cfg.transform ? cfg.transform(row, ctx) : row;
if (!transformed) {
// Tables whose rows are linked to a case via _caseext / _casenum / _casename
const caseLinked = ["tasks", "events", "call_logs", "time_entries", "expenses", "comments", "status_updates"];
const hasCaseHint = row._caseext != null || row._casenum != null || row._casename != null;
// Diagnose common transform-rejection reasons for clearer feedback
if (cfg.table === "homeowners" && !row.client_id && !row._clientext && !row._clientname) {
bumpSkip("no client match (missing companyid/company)");
@@ -725,20 +729,16 @@ function ImportPage() {
bumpSkip("client not found");
} else if (cfg.table === "time_entries" && !row.work_date) {
bumpSkip("missing or invalid work date");
} else if (cfg.table === "time_entries" && !row.case_id && !row._caseext && !row._casenum && !row._casename) {
bumpSkip("missing case reference");
} else if (cfg.table === "time_entries" && (row._caseext || row._casenum || row._casename) && !row.case_id) {
bumpSkip("case not found (import cases first or match case title/number)");
} else if (cfg.table === "time_entries" && (row.hours == null || row.hours <= 0) && row._time == null) {
bumpSkip("missing or invalid hours");
} else if (cfg.table === "time_entries" && !row.description && !row._activity) {
bumpSkip("missing description/activity");
} else if (cfg.table === "expenses" && !row.case_id && !row._caseext && !row._casenum && !row._casename) {
bumpSkip("missing case reference");
} else if (cfg.table === "expenses" && (row._caseext || row._casenum || row._casename) && !row.case_id) {
bumpSkip("case not found (import cases first or match case title/number)");
} else if (cfg.table === "expenses" && row.amount == null) {
bumpSkip("missing or invalid amount");
} else if (caseLinked.includes(cfg.table) && !row.case_id && !hasCaseHint) {
bumpSkip("missing case reference");
} else if (caseLinked.includes(cfg.table) && hasCaseHint && !row.case_id) {
bumpSkip("case not found (import cases first or match case title/number)");
} else {
bumpSkip("rejected by transform");
}