From b92c92f5b5ec16fb6d431a24d5c5c17da61ef023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Gla=CC=88ser?= Date: Tue, 8 Sep 2026 14:49:33 +0200 Subject: [PATCH] Fix incomplete lot save selection sync --- modules/erp/lager/service.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/erp/lager/service.php b/modules/erp/lager/service.php index ebbdd36..2c48c98 100644 --- a/modules/erp/lager/service.php +++ b/modules/erp/lager/service.php @@ -492,6 +492,15 @@ function is_qualified_open_lot(PDO $pdo, int $lotId): bool function sync_open_lot_activation_selection(PDO $pdo, int $productId): void { + $lockStmt = $pdo->prepare( + "SELECT id + FROM stock_lot + WHERE product_id = :product_id + AND status = 'open' + FOR UPDATE" + ); + $lockStmt->execute([':product_id' => $productId]); + $qualifiedStmt = $pdo->prepare( "SELECT sl.id FROM stock_lot sl @@ -505,8 +514,7 @@ function sync_open_lot_activation_selection(PDO $pdo, int $productId): void AND sl.expiry_date IS NOT NULL AND sl.purchase_date IS NOT NULL AND v.qty_net > 0 - ORDER BY sl.id - FOR UPDATE" + ORDER BY sl.id" ); $qualifiedStmt->execute([':product_id' => $productId]); $qualifiedIds = array_map('intval', $qualifiedStmt->fetchAll(PDO::FETCH_COLUMN));