diff --git a/public/userarea/statkpi/parsedatachart.php b/public/userarea/statkpi/parsedatachart.php index 85293b6..9f9f30d 100644 --- a/public/userarea/statkpi/parsedatachart.php +++ b/public/userarea/statkpi/parsedatachart.php @@ -154,6 +154,27 @@ while ($row = $productBySupplierResult->fetch_assoc()) { ]; } +// New Query: Distribution of analyses (for pie chart) +$analysisDistributionQuery = " + SELECT a.nameanalysisvoc AS analysisName, COUNT(DISTINCT rp.idreports, rp.idPart, rp.result_TestName) AS totalTests + FROM result_project rp + LEFT JOIN analysisvocabulary a ON rp.result_TestName = a.idanalysisvocabulary + LEFT JOIN reports r ON rp.idreports = r.idreports + LEFT JOIN products p ON r.idproducts = p.idproducts + $filters + GROUP BY rp.result_TestName + ORDER BY totalTests DESC +"; + +$analysisDistributionResult = $conn->query($analysisDistributionQuery); +$analysisDistribution = []; +while ($row = $analysisDistributionResult->fetch_assoc()) { + $analysisDistribution[] = [ + 'analysisName' => $row['analysisName'], + 'totalTests' => $row['totalTests'] + ]; +} + // Ora controlliamo se è una richiesta AJAX if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Rispondi ai dati aggiornati tramite AJAX @@ -170,7 +191,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { 'otherReportsPie' => $otherReportsPie, 'topFailingAnalysis' => $topFailingAnalysis, 'worstSuppliers' => $worstSuppliers, - 'productBySupplier' => $productBySupplier + 'productBySupplier' => $productBySupplier, + 'analysisDistribution' => $analysisDistribution // Distribuzione delle analisi per il grafico a torta ]); exit; // Ferma l'esecuzione del resto dello script dopo aver risposto all'AJAX } diff --git a/public/userarea/statkpi/statkpi.php b/public/userarea/statkpi/statkpi.php index a8f29c8..872e130 100644 --- a/public/userarea/statkpi/statkpi.php +++ b/public/userarea/statkpi/statkpi.php @@ -388,6 +388,18 @@ include('parsedatachart.php'); +
+
+
+
+
Analysis Distribution
+
+
+
+
+
+ + @@ -404,13 +416,80 @@ include('parsedatachart.php'); + + + + +