dashboard fix

This commit is contained in:
2025-11-26 11:24:29 +01:00
parent 4c63f16a54
commit a1c9d9f789
5 changed files with 957 additions and 32 deletions
+56 -20
View File
@@ -196,42 +196,54 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['stop_production']))
// --- SALVATAGGIO DATI FINE PRODUZIONE ---
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['save_final_data'])) {
$id = (int)$_POST['id'];
$id = (int)$_POST['id'];
$kgprod = (float)$_POST['kgprod'];
$mtprod = (float)$_POST['mtprod'];
$scarto = (float)$_POST['scarto'];
$note = trim($_POST['note'] ?? '');
$note = trim($_POST['note'] ?? '');
$reason = $_POST['reason'] ?? 'fine';
try {
// Calcolo automatico del tempo totale in ore
// Recupero tempo totale già calcolato
$sql = "SELECT tempo_totale_produzione FROM productiondata WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => $id]);
$seconds = (int)$stmt->fetchColumn();
$hours = round($seconds / 3600, 2);
// Stato di destinazione
// Calcolo scarto %
$totaleKg = $kgprod + $scarto;
$scartoPerc = 0.00;
if ($totaleKg > 0) {
$scartoPerc = round(($scarto / $totaleKg) * 100, 2);
}
// Stato destinazione
$nextStatus = ($reason === 'problema') ? 8 : $statusQualita;
// Update finale
$sql = "UPDATE productiondata
SET kgprod = :kgprod,
mtprod = :mtprod,
scarto = :scarto,
note_operatore = :note,
hourprod = SEC_TO_TIME(:seconds),
id_status = :status,
end_time = COALESCE(end_time, UTC_TIMESTAMP())
WHERE id = :id";
SET kgprod = :kgprod,
mtprod = :mtprod,
scarto = :scarto,
scarto_perc = :scarto_perc,
note_operatore = :note,
hourprod = SEC_TO_TIME(:seconds),
id_status = :status,
end_time = COALESCE(end_time, UTC_TIMESTAMP())
WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([
'kgprod' => $kgprod,
'mtprod' => $mtprod,
'scarto' => $scarto,
'note' => $note,
'seconds' => $seconds,
'status' => $nextStatus,
'id' => $id
'kgprod' => $kgprod,
'mtprod' => $mtprod,
'scarto' => $scarto,
'scarto_perc' => $scartoPerc,
'note' => $note,
'seconds' => $seconds,
'status' => $nextStatus,
'id' => $id
]);
echo json_encode(['success' => true]);
@@ -241,6 +253,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['save_final_data']))
exit;
}
// --- AJAX PRINCIPALE: carica i record della data selezionata ---
if (!empty($_GET['ajax'])) {
@@ -913,6 +927,11 @@ if (!empty($_GET['ajax'])) {
<input type="number" id="scarto" step="0.01" min="0" placeholder="0.00"
class="input-big">
<label><strong>Scarto (%):</strong></label>
<input type="text" id="scartoPerc" class="input-big" readonly>
<label><strong>Note operatore:</strong></label>
<textarea id="finalNote" rows="3" class="input-big"></textarea>
</div>
@@ -1387,6 +1406,9 @@ if (!empty($_GET['ajax'])) {
// Pulisci i campi reali
$('#kgprod, #mtprod, #scarto').val('');
$('#finalNote').val(note || '');
$('#kgprod, #scarto').off('input').on('input', recalcScrapPerc);
$('#scartoPerc').val('');
// Recupera i dati teorici del record
const card = $(`.record-card[data-id="${id}"]`);
@@ -1430,6 +1452,20 @@ if (!empty($_GET['ajax'])) {
});
}
function recalcScrapPerc() {
const kg = parseFloat($('#kgprod').val()) || 0;
const sc = parseFloat($('#scarto').val()) || 0;
const tot = kg + sc;
let perc = 0;
if (tot > 0) {
perc = (sc / tot) * 100;
}
$('#scartoPerc').val(perc.toFixed(2) + ' %');
}
// --- START PRODUZIONE ---