diff --git a/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php b/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php index a9b8cdcb..45698ce2 100644 --- a/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php +++ b/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php @@ -1474,12 +1474,16 @@ class ThirdPartyWarehouseStorageMirrorRepository ?int $warehouseId = self::WAREHOUSE_ID, ): Builder { - $query = $this->connection->table(self::ITEM_TABLE . ' as i') - ->join(self::HEADER_TABLE . ' as h', function ($join) use ($headerGeneration): void { - $join->on('h.io_id', '=', 'i.io_id') - ->where('h.generation', '=', $headerGeneration); - }) - ->where('i.generation', $itemGeneration) + $query = $this->connection->table(self::HEADER_TABLE . ' as h'); + // MariaDB otherwise scans every historical header for the all-warehouse roll-forward. + if ($warehouseId === null && $this->connection->getDriverName() === 'mysql') { + $query->forceIndex('tpw_headers_report_index'); + } + $query->join(self::ITEM_TABLE . ' as i', function ($join) use ($itemGeneration): void { + $join->on('i.io_id', '=', 'h.io_id') + ->where('i.generation', '=', $itemGeneration); + }) + ->where('h.generation', $headerGeneration) ->where('h.status', 'Confirmed') ->whereIn('h.io_type', array_values(self::MOVEMENT_COLUMNS)) ->whereNotExists(function (Builder $newer) use ($headerGeneration): void {