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 ?>
query($sql)->fetchAll(PDO::FETCH_ASSOC);
?>
In Produzione / Pausa / Problema
| Conf. Ord. |
Matrice |
Mescola |
Linea |
Cliente |
Data Zibo |
Data Cliente |
Timer |
Status |
Foto |
| ';
}
$lastLine = $r['id_linea'];
?>
| = htmlspecialchars($r['conferma_ordine']) ?> |
= htmlspecialchars($r['matrice']) ?>
|
= htmlspecialchars($r['mescola']) ?> |
= htmlspecialchars($r['linea']) ?> |
= htmlspecialchars($r['cliente']) ?> |
= htmlspecialchars($r['data_zibo']) ?> |
= htmlspecialchars($r['data_cliente']) ?> |
= gmdate("H:i:s", $sec) ?>
|
= htmlspecialchars($r['status_nome']) ?>
|
|
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 |