getConnection(); // Stato Qualità di destinazione dopo la compilazione $statusQualita = (int)$pdo->query("SELECT id FROM production_status WHERE id = 3 LIMIT 1")->fetchColumn(); if (!$statusQualita) { die("Errore: stato Controllo qualità (3) non trovato in production_status"); } // --- SALVATAGGIO DATI DI PRODUZIONE (da stato 11 → Qualità 3) --- if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['save_compile'])) { header('Content-Type: application/json; charset=utf-8'); $id = (int)($_POST['id'] ?? 0); $kgprod = (float)($_POST['kgprod'] ?? 0); $mtprod = (float)($_POST['mtprod'] ?? 0); $scarto = (float)($_POST['scarto'] ?? 0); $note = trim($_POST['note'] ?? ''); try { if ($id <= 0) { echo json_encode(['success' => false, 'msg' => 'ID non valido.']); exit; } if ($kgprod <= 0 && $mtprod <= 0) { echo json_encode(['success' => false, 'msg' => 'Inserisci almeno uno tra Kg o Metri prodotti.']); exit; } // Verifico che la riga sia davvero in stato 11 (da compilare) $stmtChk = $pdo->prepare("SELECT id_status FROM productiondata WHERE id = :id LIMIT 1"); $stmtChk->execute(['id' => $id]); $cur = $stmtChk->fetchColumn(); if ($cur === false) { echo json_encode(['success' => false, 'msg' => 'Produzione non trovata.']); exit; } if ((int)$cur !== 11) { echo json_encode(['success' => false, 'msg' => 'Questa produzione non è più in stato "Da compilare".']); exit; } // Calcolo scarto % $totaleKg = $kgprod + $scarto; $scartoPerc = $totaleKg > 0 ? round(($scarto / $totaleKg) * 100, 2) : 0.00; // Update: riempio i dati e passo a Qualità (3) $sql = "UPDATE productiondata SET kgprod = :kgprod, mtprod = :mtprod, scarto = :scarto, scarto_perc = :scarto_perc, note_operatore = :note, id_status = :status WHERE id = :id AND id_status = 11"; $stmt = $pdo->prepare($sql); $stmt->execute([ 'kgprod' => $kgprod, 'mtprod' => $mtprod, 'scarto' => $scarto, 'scarto_perc' => $scartoPerc, 'note' => $note ?: null, 'status' => $statusQualita, 'id' => $id ]); echo json_encode(['success' => true]); } catch (Exception $e) { echo json_encode(['success' => false, 'msg' => $e->getMessage()]); } exit; } // --- AJAX: lista produzioni in stato 11 --- if (!empty($_GET['ajax'])) { $sql = "SELECT p.*, m.nome AS matrice, l.name AS linea, c.nome AS cliente, ( SELECT GROUP_CONCAT(mes.nome ORDER BY mes.nome SEPARATOR ' | ') FROM productiondata_mescole pm JOIN mescole mes ON mes.id = pm.id_mescola WHERE pm.id_productiondata = p.id ) AS mescole_list FROM productiondata p LEFT JOIN matrice m ON p.idmatrice = m.id LEFT JOIN production_lines l ON p.id_linea = l.id LEFT JOIN clients c ON p.id_cliente = c.id WHERE p.id_status = 11 ORDER BY p.end_time ASC, p.id ASC"; $records = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); if (empty($records)) { echo '