Magazzino - Mescole
Suggerimento: usa la ricerca tabella per trovare lotto/fornitore
getConnection(); // filtro mescole attive/inattive $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; } // Query: tutte le righe lotto-fornitore con nome uscita $sql = " SELECT msl.id AS lot_id, m.id AS idmescola, m.nomeuscita, m.is_active, s.supplier_name, msl.supplier_mix_name, msl.lot_code, msl.expiry_date, msl.qty FROM mescole_supplier_lots msl INNER JOIN mescole m ON m.id = msl.idmescola INNER JOIN suppliers s ON s.idsupplier = msl.idsupplier $where ORDER BY m.nomeuscita ASC, s.supplier_name ASC, msl.lot_code ASC, msl.id DESC "; $stmt = $pdo->prepare($sql); $stmt->execute($params); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $today = date('Y-m-d'); ?>
"; } else { foreach ($rows as $r) { $expiry = $r['expiry_date'] ?? ''; $isExpired = ($expiry !== '' && $expiry < $today); $isActiveMix = ((int)$r['is_active'] === 1); $trClass = []; if ($isExpired) $trClass[] = 'expired'; if (!$isActiveMix) $trClass[] = 'inactive-mix'; $trClassStr = $trClass ? " class='" . implode(' ', $trClass) . "'" : ""; $qtyVal = number_format((float)$r['qty'], 3, '.', ''); $expiryShow = $expiry ? htmlspecialchars($expiry) : '-'; echo " "; } } ?>
ID Nome Uscita Fornitore Nome Fornitore Lotto Scadenza Q.tà Salva
- Nessuna riga presente - - - - - -
{$r['lot_id']} " . htmlspecialchars($r['nomeuscita']) . " " . htmlspecialchars($r['supplier_name']) . " " . htmlspecialchars($r['supplier_mix_name']) . " " . htmlspecialchars($r['lot_code'] ?? '') . " {$expiryShow}
* Riga rossa = scaduta. * Riga opaca = mescola disattiva (ma lotto ancora presente).