getConnection(); // --- Filtro periodo --- $from = $_GET['from'] ?? date('Y-m-01'); $to = $_GET['to'] ?? date('Y-m-t'); // --- Query base --- $baseWhere = "WHERE p.data_produzione BETWEEN :from AND :to"; // --- KPI --- $kpi = $pdo->prepare(" SELECT COUNT(*) AS totale, SUM(p.ore_previste) AS orepreviste, SUM(p.metri) AS metri, SUM(p.kg_sp) AS kgsp FROM productiondata p $baseWhere "); $kpi->execute(['from' => $from, 'to' => $to]); $kpi = $kpi->fetch(PDO::FETCH_ASSOC); // --- Grafico stati --- $stati = $pdo->prepare(" SELECT s.nome, COUNT(*) AS totale FROM productiondata p LEFT JOIN production_status s ON p.id_status = s.id $baseWhere GROUP BY p.id_status "); $stati->execute(['from' => $from, 'to' => $to]); $data_stati = $stati->fetchAll(PDO::FETCH_ASSOC); // --- Grafico per linea --- $linee = $pdo->prepare(" SELECT l.name, COUNT(*) AS totale FROM productiondata p LEFT JOIN production_lines l ON p.id_linea = l.id $baseWhere GROUP BY p.id_linea "); $linee->execute(['from' => $from, 'to' => $to]); $data_linee = $linee->fetchAll(PDO::FETCH_ASSOC); // --- Metri per mescola --- $mescole = $pdo->prepare(" SELECT ms.nome, SUM(p.metri) AS metri FROM productiondata p LEFT JOIN mescole ms ON p.idmescola = ms.id $baseWhere GROUP BY p.idmescola "); $mescole->execute(['from' => $from, 'to' => $to]); $data_mescole = $mescole->fetchAll(PDO::FETCH_ASSOC); // --- Ore previste per cliente --- $clienti = $pdo->prepare(" SELECT c.nome, SUM(p.ore_previste) AS ore FROM productiondata p LEFT JOIN clients c ON p.id_cliente = c.id $baseWhere GROUP BY p.id_cliente "); $clienti->execute(['from' => $from, 'to' => $to]); $data_clienti = $clienti->fetchAll(PDO::FETCH_ASSOC); ?> Statistiche Produzione | <?= $titlewebsite ?>
Filtra periodo
Produzioni
Ore previste
Metri totali
Kg SP totali
Distribuzione per stato
Produzioni per linea
Metri programmati per mescola
Ore previste per cliente