getConnection();
// AJAX HANDLERS
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ajax']) && $_POST['ajax'] == '1') {
header('Content-Type: application/json');
$action = $_POST['action'] ?? '';
try {
if ($action === 'add') {
$name = trim($_POST['name'] ?? '');
$abbreviato = trim($_POST['abbreviato'] ?? '');
$ordinamento = (int)($_POST['ordinamento'] ?? 999);
$description = trim($_POST['description'] ?? '');
$production_line_id = $_POST['production_line_id'] !== '' ? (int)$_POST['production_line_id'] : null;
$tool_id = $_POST['tool_id'] !== '' ? (int)$_POST['tool_id'] : null;
$tool_note = trim($_POST['tool_note'] ?? '');
if ($name === '') {
echo json_encode(['success' => false, 'message' => 'Nome obbligatorio']);
exit;
}
$stmt = $pdo->prepare("
INSERT INTO skills
(name, abbreviato, ordinamento, description, production_line_id, tool_id, tool_note)
VALUES (?, ?, ?, ?, ?, ?, ?)
");
$stmt->execute([$name, $abbreviato, $ordinamento, $description, $production_line_id, $tool_id, $tool_note]);
echo json_encode(['success' => true]);
exit;
}
if ($action === 'edit') {
$id = (int)($_POST['id'] ?? 0);
$name = trim($_POST['name'] ?? '');
$abbreviato = trim($_POST['abbreviato'] ?? '');
$ordinamento = (int)($_POST['ordinamento'] ?? 999);
$description = trim($_POST['description'] ?? '');
$production_line_id = $_POST['production_line_id'] !== '' ? (int)$_POST['production_line_id'] : null;
$tool_id = $_POST['tool_id'] !== '' ? (int)$_POST['tool_id'] : null;
$tool_note = trim($_POST['tool_note'] ?? '');
if ($id <= 0 || $name === '') {
echo json_encode(['success' => false, 'message' => 'Dati non validi']);
exit;
}
$stmt = $pdo->prepare("
UPDATE skills SET
name = ?, abbreviato = ?, ordinamento = ?, description = ?,
production_line_id = ?, tool_id = ?, tool_note = ?
WHERE id = ?
");
$stmt->execute([$name, $abbreviato, $ordinamento, $description, $production_line_id, $tool_id, $tool_note, $id]);
echo json_encode(['success' => true]);
exit;
}
if ($action === 'delete') {
$id = (int)($_POST['id'] ?? 0);
if ($id <= 0) {
echo json_encode(['success' => false, 'message' => 'ID non valido']);
exit;
}
$stmt = $pdo->prepare("DELETE FROM skills WHERE id = ?");
$stmt->execute([$id]);
echo json_encode(['success' => true]);
exit;
}
echo json_encode(['success' => false, 'message' => 'Azione sconosciuta']);
exit;
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
exit;
}
}
// Elenco skills con nome tool
$skills = $pdo->query("
SELECT
s.id,
s.name,
s.abbreviato,
s.ordinamento,
s.description,
s.tool_id,
s.tool_note,
s.production_line_id,
pl.name AS linea_name,
pt.name AS tool_name,
pt.registration_number
FROM skills s
LEFT JOIN production_lines pl ON s.production_line_id = pl.id
LEFT JOIN production_tools pt ON s.tool_id = pt.id
ORDER BY s.ordinamento ASC, s.id
")->fetchAll(PDO::FETCH_ASSOC);
// Linee produzione
$lines = $pdo->query("SELECT id, name FROM production_lines ORDER BY line_number")->fetchAll(PDO::FETCH_ASSOC);
// Attrezzature per tendina
$tools = $pdo->query("
SELECT id, name, registration_number
FROM production_tools
WHERE is_active = 1
ORDER BY name
")->fetchAll(PDO::FETCH_ASSOC);
?>
Gestione Skills
Elenco Skills
| ID |
Abbreviato |
Ordinamento |
Linea |
Attrezzatura |
Nota Tool |
Azioni |
| = htmlspecialchars($s['name']) ?> |
= htmlspecialchars($s['abbreviato'] ?? '-') ?> |
= (int)$s['ordinamento'] ?> |
= htmlspecialchars($s['linea_name'] ?? '-') ?> |
= htmlspecialchars($s['tool_name']) ?>
(= htmlspecialchars($s['registration_number']) ?>)
-
|
= htmlspecialchars($s['tool_note'] ?? '-') ?> |
|