Gestione Mescole
Elenco Completo
getConnection(); // filtro: all / 1 / 0 $activeFilter = $_GET['active'] ?? '1'; if (!in_array($activeFilter, ['all', '0', '1'], true)) { $activeFilter = '1'; } $where = ""; $params = []; if ($activeFilter !== 'all') { $where = "WHERE m.is_active = ?"; $params[] = (int)$activeFilter; } // QTY IN SUBQUERY per evitare raddoppi dovuti alle linee $sql = " SELECT m.id, m.nomeuscita, m.is_active, IFNULL(q.qty_totale, 0) AS qty_totale, GROUP_CONCAT(DISTINCT pl.name SEPARATOR ', ') AS linee FROM mescole m LEFT JOIN ( SELECT idmescola, SUM(qty) AS qty_totale FROM mescole_supplier_lots GROUP BY idmescola ) q ON q.idmescola = m.id LEFT JOIN mescole_lines ml ON m.id = ml.idmescola LEFT JOIN production_lines pl ON ml.idlinea = pl.id $where GROUP BY m.id ORDER BY m.id DESC "; $stmt = $pdo->prepare($sql); $stmt->execute($params); if ($stmt->rowCount() === 0) { // DataTables-friendly: 6 TD reali echo ""; } else { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $linee = $row['linee'] ? htmlspecialchars($row['linee']) : 'Nessuna'; $qtyTot = number_format((float)$row['qty_totale'], 3, ',', '.'); $isActive = (int)$row['is_active'] === 1; $badge = $isActive ? "Attiva" : "Inattiva"; $toggleText = $isActive ? "Disattiva" : "Attiva"; $toggleClass = $isActive ? "btn-outline-warning" : "btn-outline-success"; echo ""; } } ?>
ID Nome Uscita Q.tà Totale Linee Associate Stato Azioni
- Nessuna mescola presente - - - -
{$row['id']} " . htmlspecialchars($row['nomeuscita']) . " {$qtyTot} {$linee} {$badge}