From 1a0023b7759e134ce7ab34771ca2071067a0fb1f Mon Sep 17 00:00:00 2001 From: seb Date: Wed, 21 Oct 2026 12:03:30 +0200 Subject: [PATCH] u --- src/services/companyImport/orderImporter.js | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/services/companyImport/orderImporter.js b/src/services/companyImport/orderImporter.js index 73663e0..4cfd3a4 100644 --- a/src/services/companyImport/orderImporter.js +++ b/src/services/companyImport/orderImporter.js @@ -379,6 +379,29 @@ export async function importOrders({ const isSelbstabholer = (shippingType || '').trim().toLowerCase() === 'selbstabholer'; const deliveryState = isShipped ? 'delivered' : 'new'; + // Historic orders ship stock that was never booked in; add the shortfall implicitly. + const neededBySku = new Map(); + for (const l of shippableLines) { + if (l.sku && l.amount > 0) { + neededBySku.set(l.sku, (neededBySku.get(l.sku) || 0) + Number(l.amount)); + } + } + for (const [sku, needed] of neededBySku) { + const detail = await store.article.getBySku(googleAuthId, sku); + const art = detail?.article; + if (!art?.track_stock) continue; + const available = art.warehouses.find((w) => w.id === defaultWarehouseId)?.stock ?? 0; + const shortfall = needed - available; + if (shortfall > 0) { + await store.stock.adjust(googleAuthId, { + sku, + warehouseId: defaultWarehouseId, + amount: shortfall, + text: `Import ${orderNumber}`, + }); + } + } + const trackingCode = isSelbstabholer ? '' : cleanValue(m.trackingCode ?? m.tracking_code ?? m.cTracking);