diff --git a/src/components/cases/ledger-row.tsx b/src/components/cases/ledger-row.tsx
index 94ac184..d9c1333 100644
--- a/src/components/cases/ledger-row.tsx
+++ b/src/components/cases/ledger-row.tsx
@@ -8,7 +8,7 @@ import { formatCurrency } from "@/lib/format";
export interface EditableEntry {
id: string;
- entry_date: string;
+ entry_date: string | null;
description: string | null;
account: string | null;
assess: number;
@@ -63,6 +63,8 @@ export function SortableLedgerRow({ entry, onPatch, onRemove }: Props) {
const commit = (key: keyof EditableEntry, raw: string | number) => {
let val: any = raw;
if (NUM_COLS.some((c) => c.key === key)) val = raw === "" ? 0 : Number(raw) || 0;
+ // Allow blank dates / blank text fields
+ if (key === "entry_date" && raw === "") val = null;
if (val === (entry as any)[key]) return;
setDraft((d) => ({ ...d, [key]: val }));
onPatch(entry.id, { [key]: val } as any);
@@ -84,9 +86,9 @@ export function SortableLedgerRow({ entry, onPatch, onRemove }: Props) {
setDraft((d) => ({ ...d, entry_date: e.target.value }))}
- onBlur={(e) => commit("entry_date", e.target.value)}
+ value={draft.entry_date ?? ""}
+ onChange={(e) => setDraft((d) => ({ ...d, entry_date: e.target.value || null }))}
+ onBlur={(e) => commit("entry_date", e.target.value || (null as any))}
className="w-full bg-transparent border border-transparent hover:border-border focus:border-ring rounded px-1.5 py-1 text-xs outline-none"
/>
|
diff --git a/src/integrations/supabase/types.ts b/src/integrations/supabase/types.ts
index 5be89d8..afed045 100644
--- a/src/integrations/supabase/types.ts
+++ b/src/integrations/supabase/types.ts
@@ -666,7 +666,7 @@ export type Database = {
credit: number
debit: number
description: string | null
- entry_date: string
+ entry_date: string | null
id: string
interest: number
late: number
@@ -688,7 +688,7 @@ export type Database = {
credit?: number
debit?: number
description?: string | null
- entry_date?: string
+ entry_date?: string | null
id?: string
interest?: number
late?: number
@@ -710,7 +710,7 @@ export type Database = {
credit?: number
debit?: number
description?: string | null
- entry_date?: string
+ entry_date?: string | null
id?: string
interest?: number
late?: number
diff --git a/src/lib/ledger.ts b/src/lib/ledger.ts
index 3ff132c..c2f7018 100644
--- a/src/lib/ledger.ts
+++ b/src/lib/ledger.ts
@@ -25,7 +25,7 @@ export const BUCKET_SHORT: Record = {
export interface LedgerEntry {
id: string;
collection_id: string;
- entry_date: string;
+ entry_date: string | null;
description: string | null;
account: string | null;
assess: number;
diff --git a/supabase/migrations/20260426083827_b9521c94-636c-4fc1-877e-9cc9d02cae9c.sql b/supabase/migrations/20260426083827_b9521c94-636c-4fc1-877e-9cc9d02cae9c.sql
new file mode 100644
index 0000000..fb63a3d
--- /dev/null
+++ b/supabase/migrations/20260426083827_b9521c94-636c-4fc1-877e-9cc9d02cae9c.sql
@@ -0,0 +1,3 @@
+ALTER TABLE public.collection_ledger_entries
+ ALTER COLUMN entry_date DROP NOT NULL,
+ ALTER COLUMN entry_date DROP DEFAULT;
\ No newline at end of file