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));