prepare( "SELECT id, warehouse_name FROM md_warehouse WHERE company_id = :company_id AND status = 1" ); $sth->execute([':company_id' => $company_id]); $warehouses = $sth->fetchAll(PDO::FETCH_ASSOC); $active_lots = []; foreach ($warehouses as $wh) { $safe = preg_replace('/[^a-zA-Z0-9_]/', '', $wh['warehouse_name']); $table = "td_stock_{$safe}"; $sth = $pdo2->prepare( "SELECT DISTINCT s.lot_number, l.expiry_date FROM `{$table}` s LEFT JOIN md_lot l ON l.company_id = s.company_id AND l.product_sku = s.product_sku AND l.lot_number = s.lot_number WHERE s.company_id = :company_id AND s.product_sku = :product_sku AND s.type = 'in' AND s.lot_number IS NOT NULL AND EXISTS ( SELECT 1 FROM md_rack r WHERE r.company_id = s.company_id AND r.td_stock_id = s.id AND r.product_sku IS NOT NULL )" ); $sth->execute([ ':company_id' => $company_id, ':product_sku' => $product_sku, ]); foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $row) { $key = $row['lot_number']; if (!isset($active_lots[$key])) { $active_lots[$key] = $row; } } } $answer['output'] = array_values($active_lots); $answer['success'] = 1; exit(json_encode($answer)); ?>