Fix import script order count issues

This commit is contained in:
2025-02-01 12:54:33 -05:00
parent 1003ff3cf2
commit 5bfd6f6d04
2 changed files with 146 additions and 200 deletions

View File

@@ -459,7 +459,15 @@ async function importPurchaseOrders(prodConnection, localConnection, incremental
VALUES ${insertPlaceholders}
`, insertsAndUpdates.inserts.map(i => i.values).flat());
recordsAdded += insertResult[0].affectedRows;
const affectedRows = insertResult[0].affectedRows;
// For an upsert, MySQL counts rows twice for updates
// So if affectedRows is odd, we have (updates * 2 + inserts)
const updates = Math.floor(affectedRows / 2);
const inserts = affectedRows - (updates * 2);
recordsAdded += inserts;
recordsUpdated += Math.floor(updates); // Ensure we never have fractional updates
processed += batchProcessed;
}
// Handle updates - now we know these actually have changes
@@ -477,10 +485,15 @@ async function importPurchaseOrders(prodConnection, localConnection, incremental
.join(",")};
`, insertsAndUpdates.updates.map(u => u.values).flat());
recordsUpdated += updateResult[0].affectedRows / 2; // Each update counts as 2 in affectedRows
const affectedRows = updateResult[0].affectedRows;
// For an upsert, MySQL counts rows twice for updates
// So if affectedRows is odd, we have (updates * 2 + inserts)
const updates = Math.floor(affectedRows / 2);
const inserts = affectedRows - (updates * 2);
recordsUpdated += Math.floor(updates); // Ensure we never have fractional updates
processed += batchProcessed;
}
processed += batchProcessed;
// Update progress based on time interval
const now = Date.now();