getConnection(); // --- LISTE SELECT --- $matrici = $pdo->query("SELECT id, nome FROM matrice ORDER BY nome")->fetchAll(); $mescole = $pdo->query("SELECT id, nome FROM mescole ORDER BY nome")->fetchAll(); $linee = $pdo->query("SELECT id, line_number, name FROM production_lines ORDER BY line_number")->fetchAll(); $clienti = $pdo->query("SELECT id, nome FROM clients ORDER BY nome")->fetchAll(); $status_list = $pdo->query("SELECT id, nome, badge_color, line_color FROM production_status ORDER BY ordinamento, nome")->fetchAll(); function selectOptions($arr, $sel = null, $val = 'id', $txt = 'nome') { $opt = ''; foreach ($arr as $a) { $selected = ($sel !== null && $a[$val] == $sel) ? 'selected' : ''; $opt .= ""; } return $opt; } // --- SALVATAGGIO INLINE --- if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['action'])) { $action = $_POST['action']; try { // ============================ // INSERT // ============================ if ($action === 'insert') { $dataInsert = [ 'Data' => $_POST['Data'], 'data_produzione' => $_POST['data_produzione'], 'idmatrice' => $_POST['idmatrice'], 'id_linea' => $_POST['id_linea'], 'id_cliente' => $_POST['id_cliente'] ?: null, 'data_zibo' => $_POST['data_zibo'] ?: null, 'data_cliente' => $_POST['data_cliente'] ?: null, 'metri' => $_POST['metri'] ?: 0, 'kg_sp' => $_POST['kg_sp'] ?: 0, 'kg_p' => $_POST['kg_p'] ?: 0, 'ore_previste' => $_POST['ore_previste'] ?: 0, 'note_extra' => $_POST['note_extra'] ?: null, 'id_status' => $_POST['id_status'] ?? 1, 'conferma_ordine' => $_POST['conferma_ordine'] ?: null, ]; $sql = "INSERT INTO productiondata (Data, data_produzione, conferma_ordine, idmatrice, id_linea, id_cliente, data_zibo, data_cliente, metri, kg_sp, kg_p, ore_previste, note_extra, id_status) VALUES (:Data, :data_produzione, :conferma_ordine, :idmatrice, :id_linea, :id_cliente, :data_zibo, :data_cliente, :metri, :kg_sp, :kg_p, :ore_previste, :note_extra, :id_status)"; $stmt = $pdo->prepare($sql); $stmt->execute($dataInsert); // nuovo ID $idProd = $pdo->lastInsertId(); // reset associazioni mescole $pdo->prepare("DELETE FROM productiondata_mescole WHERE id_productiondata=?") ->execute([$idProd]); if (!empty($_POST['mescole'])) { $ins = $pdo->prepare("INSERT INTO productiondata_mescole (id_productiondata, id_mescola) VALUES (?, ?)"); foreach ($_POST['mescole'] as $m) { $ins->execute([$idProd, $m]); } } echo json_encode(['success' => true]); } // ============================ // UPDATE // ============================ elseif ($action === 'update' && !empty($_POST['id'])) { $dataUpdate = [ 'id' => $_POST['id'], 'idmatrice' => $_POST['idmatrice'], 'id_linea' => $_POST['id_linea'], 'id_cliente' => $_POST['id_cliente'] ?: null, 'data_zibo' => $_POST['data_zibo'] ?: null, 'data_cliente' => $_POST['data_cliente'] ?: null, 'metri' => $_POST['metri'] ?: 0, 'kg_sp' => $_POST['kg_sp'] ?: 0, 'kg_p' => $_POST['kg_p'] ?: 0, 'ore_previste' => $_POST['ore_previste'] ?: 0, 'note_extra' => $_POST['note_extra'] ?: null, 'id_status' => $_POST['id_status'] ?? 1, 'conferma_ordine' => $_POST['conferma_ordine'] ?: null, ]; $sql = "UPDATE productiondata SET idmatrice = :idmatrice, id_linea = :id_linea, id_cliente = :id_cliente, data_zibo = :data_zibo, data_cliente = :data_cliente, metri = :metri, kg_sp = :kg_sp, kg_p = :kg_p, ore_previste = :ore_previste, note_extra = :note_extra, id_status = :id_status, conferma_ordine = :conferma_ordine WHERE id = :id"; $stmt = $pdo->prepare($sql); $stmt->execute($dataUpdate); // ID esistente $idProd = $_POST['id']; $pdo->prepare("DELETE FROM productiondata_mescole WHERE id_productiondata=?") ->execute([$idProd]); if (!empty($_POST['mescole'])) { $ins = $pdo->prepare("INSERT INTO productiondata_mescole (id_productiondata, id_mescola) VALUES (?, ?)"); foreach ($_POST['mescole'] as $m) { $ins->execute([$idProd, $m]); } } echo json_encode(['success' => true]); } exit; } catch (Exception $e) { echo json_encode(['success' => false, 'msg' => $e->getMessage()]); exit; } } ?> Programmazione Produzione - <?= $titlewebsite ?>
Programmazione Produzione
query($sql)->fetchAll(PDO::FETCH_ASSOC); ?>
In Produzione / Pausa / Problema
Conf. Ord. Matrice Mescola Linea Cliente Data Zibo Data Cliente Timer Status Foto


Programmati
P. Conf. Ord. Matrice Mescola Linea Cliente Data Zibo Data Cliente mt kg sp kg p Ore Note Status Azioni
Da Programmare
Conf. Ord. Matrice Mescola Linea Cliente Data Zibo Data Cliente mt kg sp kg p Ore Note Status Azioni