From 492736a33e71759614474b90c04f47e011c44aec Mon Sep 17 00:00:00 2001 From: SekiDesu01 Date: Tue, 23 Jun 2026 18:42:56 -0400 Subject: [PATCH] modified: blueprints/sync_server.py modified: core/sync.py --- blueprints/sync_server.py | 9 ++++++++- core/sync.py | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/blueprints/sync_server.py b/blueprints/sync_server.py index c4c6468..ebc62f0 100644 --- a/blueprints/sync_server.py +++ b/blueprints/sync_server.py @@ -40,19 +40,26 @@ def sync_push(): (et, eu) ).fetchone() if not existing: + now = datetime.now(timezone.utc).isoformat() conn.execute( "INSERT INTO sync_deletions (entity_type, entity_uuid, deleted_at) VALUES (?, ?, ?)", - (et, eu, synced_at) + (et, eu, now) ) if et == 'debtor': conn.execute("DELETE FROM debtors WHERE uuid = ?", (eu,)) elif et == 'ticket': + row = conn.execute("SELECT id FROM debtor_tickets WHERE uuid = ?", (eu,)).fetchone() + if row: + conn.execute("DELETE FROM debtor_ticket_items WHERE ticket_id = ?", (row[0],)) conn.execute("DELETE FROM debtor_tickets WHERE uuid = ?", (eu,)) elif et == 'dicom': conn.execute("DELETE FROM dicom WHERE uuid = ?", (eu,)) elif et == 'expense': conn.execute("DELETE FROM expenses WHERE uuid = ?", (eu,)) elif et == 'sale': + row = conn.execute("SELECT id FROM sales WHERE uuid = ?", (eu,)).fetchone() + if row: + conn.execute("DELETE FROM sale_items WHERE sale_id = ?", (row[0],)) conn.execute("DELETE FROM sales WHERE uuid = ?", (eu,)) elif et == 'product': conn.execute("DELETE FROM products WHERE barcode = ?", (eu,)) diff --git a/core/sync.py b/core/sync.py index 3038bcd..27d18be 100644 --- a/core/sync.py +++ b/core/sync.py @@ -218,12 +218,18 @@ class SyncManager: if et == 'debtor': conn.execute("DELETE FROM debtors WHERE uuid = ?", (eu,)) elif et == 'ticket': + row = conn.execute("SELECT id FROM debtor_tickets WHERE uuid = ?", (eu,)).fetchone() + if row: + conn.execute("DELETE FROM debtor_ticket_items WHERE ticket_id = ?", (row[0],)) conn.execute("DELETE FROM debtor_tickets WHERE uuid = ?", (eu,)) elif et == 'dicom': conn.execute("DELETE FROM dicom WHERE uuid = ?", (eu,)) elif et == 'expense': conn.execute("DELETE FROM expenses WHERE uuid = ?", (eu,)) elif et == 'sale': + row = conn.execute("SELECT id FROM sales WHERE uuid = ?", (eu,)).fetchone() + if row: + conn.execute("DELETE FROM sale_items WHERE sale_id = ?", (row[0],)) conn.execute("DELETE FROM sales WHERE uuid = ?", (eu,)) elif et == 'product': conn.execute("DELETE FROM products WHERE barcode = ?", (eu,))