277 lines
8.7 KiB
PHP
277 lines
8.7 KiB
PHP
<?php include('include/headscript.php'); ?>
|
||
<!doctype html>
|
||
<html lang="it">
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<link rel="icon" href="assets/images/favicon-32x32.png" type="image/png" />
|
||
<?php include('cssinclude.php'); ?>
|
||
<title>Dashboard Produzione - <?= htmlspecialchars($titlewebsite, ENT_QUOTES, 'UTF-8'); ?></title>
|
||
|
||
<!-- Bootstrap + jQuery -->
|
||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||
|
||
<style>
|
||
body {
|
||
background: linear-gradient(135deg, #f3f6f8, #e8eef3);
|
||
font-family: 'Segoe UI', sans-serif;
|
||
color: #2b3e50;
|
||
}
|
||
|
||
.page-content {
|
||
padding: 2rem 1rem;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
|
||
h3.dashboard-title {
|
||
text-align: center;
|
||
font-weight: 700;
|
||
color: #2b3e50;
|
||
margin-bottom: 2rem;
|
||
letter-spacing: 0.3px;
|
||
}
|
||
|
||
/* ===== STATISTICHE ===== */
|
||
.stats-row {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: center;
|
||
gap: 20px;
|
||
margin-bottom: 40px;
|
||
width: 100%;
|
||
max-width: 900px;
|
||
}
|
||
|
||
.stat-card {
|
||
flex: 1 1 250px;
|
||
background: #fff;
|
||
border-radius: 16px;
|
||
padding: 20px 25px;
|
||
box-shadow: 0 5px 12px rgba(0, 0, 0, 0.08);
|
||
text-align: center;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.stat-card:hover {
|
||
transform: translateY(-3px);
|
||
box-shadow: 0 8px 18px rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
.stat-value {
|
||
font-size: 2rem;
|
||
font-weight: 700;
|
||
color: #2b3e50;
|
||
}
|
||
|
||
.stat-label {
|
||
font-size: 1rem;
|
||
font-weight: 500;
|
||
color: #6b7a89;
|
||
}
|
||
|
||
.stat-prod {
|
||
background: linear-gradient(135deg, #cde5ff, #dff0ff);
|
||
}
|
||
|
||
.stat-mese {
|
||
background: linear-gradient(135deg, #d2f7d9, #e7ffea);
|
||
}
|
||
|
||
.stat-scarti {
|
||
background: linear-gradient(135deg, #ffe7cc, #fff3df);
|
||
}
|
||
|
||
/* ===== BOTTONI ===== */
|
||
.dashboard-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(200px, 1fr));
|
||
gap: 25px 35px;
|
||
width: 100%;
|
||
max-width: 900px;
|
||
justify-items: center;
|
||
margin-bottom: 25px;
|
||
}
|
||
|
||
.dashboard-grid-bottom {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(200px, 1fr));
|
||
gap: 25px 35px;
|
||
width: 100%;
|
||
max-width: 900px;
|
||
justify-items: center;
|
||
}
|
||
|
||
.dash-btn {
|
||
width: 100%;
|
||
max-width: 280px;
|
||
border: none;
|
||
border-radius: 16px;
|
||
padding: 24px 10px;
|
||
color: #2b3e50;
|
||
font-size: 1.3rem;
|
||
font-weight: 600;
|
||
background: #fff;
|
||
transition: all 0.2s ease;
|
||
box-shadow: 0 5px 12px rgba(0, 0, 0, 0.08);
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.dash-btn:hover {
|
||
transform: translateY(-3px);
|
||
box-shadow: 0 8px 18px rgba(0, 0, 0, 0.15);
|
||
cursor: pointer;
|
||
}
|
||
|
||
.dash-icon {
|
||
font-size: 3.2rem;
|
||
margin-bottom: 10px;
|
||
line-height: 1;
|
||
}
|
||
|
||
/* Colori pastello */
|
||
.btn-inserisci {
|
||
background: linear-gradient(135deg, #a4c2f3ff, #c1d8ffff);
|
||
}
|
||
|
||
.btn-visualizza {
|
||
background: linear-gradient(135deg, #82f09eff, #aaecaaff);
|
||
}
|
||
|
||
.btn-statistiche {
|
||
background: linear-gradient(135deg, #ffe0a3ff, #fff1c1ff);
|
||
}
|
||
|
||
.btn-mescole {
|
||
background: linear-gradient(135deg, #ffc853ff, #fdd98bff);
|
||
}
|
||
|
||
.btn-matrici {
|
||
background: linear-gradient(135deg, #ff8585ff, #ff9d9dff);
|
||
}
|
||
|
||
.btn-linee {
|
||
background: linear-gradient(135deg, #b9e3ffff, #d7f1ffff);
|
||
}
|
||
|
||
@media (max-width: 768px) {
|
||
.stats-row {
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
|
||
.dashboard-grid,
|
||
.dashboard-grid-bottom {
|
||
grid-template-columns: 1fr;
|
||
gap: 20px;
|
||
}
|
||
|
||
.dash-btn {
|
||
font-size: 1.2rem;
|
||
padding: 30px 8px;
|
||
}
|
||
|
||
.dash-icon {
|
||
font-size: 2.6rem;
|
||
}
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div class="wrapper">
|
||
<?php include('include/navbar.php'); ?>
|
||
<?php include('include/topbar.php'); ?>
|
||
|
||
<div class="page-wrapper">
|
||
<div class="page-content">
|
||
|
||
<h3 class="dashboard-title">Dashboard Produzione</h3>
|
||
|
||
<!-- ===== STATISTICHE PRINCIPALI ===== -->
|
||
<div class="stats-row">
|
||
<?php
|
||
$db = DBHandlerSelect::getInstance();
|
||
$pdo = $db->getConnection();
|
||
|
||
// Totale odierno
|
||
$stmt = $pdo->query("SELECT SUM(kgprod) AS totale_oggi FROM productiondata WHERE DATE(Data) = CURDATE()");
|
||
$totOggi = number_format($stmt->fetchColumn() ?? 0, 2, ',', '.');
|
||
|
||
// Totale mese
|
||
$stmt = $pdo->query("SELECT SUM(kgprod) AS totale_mese FROM productiondata WHERE MONTH(Data) = MONTH(CURDATE()) AND YEAR(Data) = YEAR(CURDATE())");
|
||
$totMese = number_format($stmt->fetchColumn() ?? 0, 2, ',', '.');
|
||
|
||
// Scarti medi %
|
||
$stmt = $pdo->query("SELECT (SUM(scarto)/NULLIF(SUM(kgprod),0))*100 AS perc_scarto FROM productiondata WHERE MONTH(Data) = MONTH(CURDATE()) AND YEAR(Data) = YEAR(CURDATE())");
|
||
$percScarto = number_format($stmt->fetchColumn() ?? 0, 2, ',', '.');
|
||
?>
|
||
|
||
<div class="stat-card stat-prod">
|
||
<div class="stat-value"><?= $totOggi ?> kg</div>
|
||
<div class="stat-label">Produzione odierna</div>
|
||
</div>
|
||
|
||
<div class="stat-card stat-mese">
|
||
<div class="stat-value"><?= $totMese ?> kg</div>
|
||
<div class="stat-label">Produzione mese corrente</div>
|
||
</div>
|
||
|
||
<div class="stat-card stat-scarti">
|
||
<div class="stat-value"><?= $percScarto ?>%</div>
|
||
<div class="stat-label">Scarto medio mensile</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ===== BOTTONI PRINCIPALI (3 per riga) ===== -->
|
||
<div class="dashboard-grid">
|
||
|
||
<button class="dash-btn btn-inserisci" onclick="location.href='production_add.php'">
|
||
<div class="dash-icon">➕</div>
|
||
<div>Inserisci Dati Produzione</div>
|
||
</button>
|
||
|
||
<button class="dash-btn btn-visualizza" onclick="location.href='production_all.php'">
|
||
<div class="dash-icon">📊</div>
|
||
<div>Riepilogo Produzione</div>
|
||
</button>
|
||
|
||
<button class="dash-btn btn-statistiche" onclick="location.href='production_stats.php'">
|
||
<div class="dash-icon">📈</div>
|
||
<div>Statistiche</div>
|
||
</button>
|
||
</div>
|
||
|
||
<!-- ===== SECONDA RIGA BOTTONI (3 per riga) ===== -->
|
||
<div class="dashboard-grid-bottom">
|
||
<button class="dash-btn btn-mescole" onclick="location.href='mescole.php'">
|
||
<div class="dash-icon">⚗️</div>
|
||
<div>Mescole</div>
|
||
</button>
|
||
|
||
<button class="dash-btn btn-matrici" onclick="location.href='matrici.php'">
|
||
<div class="dash-icon">🧩</div>
|
||
<div>Matrici</div>
|
||
</button>
|
||
|
||
<button class="dash-btn btn-linee" onclick="location.href='linee.php'">
|
||
<div class="dash-icon">🏭</div>
|
||
<div>Linee di Produzione</div>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<?php include('jsinclude.php'); ?>
|
||
<?php include('include/footer.php'); ?>
|
||
</div>
|
||
</body>
|
||
|
||
</html>
|