Files
zibo-dashboard/public/userarea/scadenzario/functions/ajax/save_function.php
T
2026-05-22 09:16:46 +02:00

64 lines
1.9 KiB
PHP

<?php
require_once(__DIR__ . '/../../ajax/auth_check.php');
header('Content-Type: application/json');
require_once(__DIR__ . '/../../../class/db-functions.php');
try {
$db = DBHandlerSelect::getInstance();
$pdo = $db->getConnection();
$id = isset($_POST['id']) && is_numeric($_POST['id']) ? (int)$_POST['id'] : null;
$name = trim($_POST['name'] ?? '');
$description = trim($_POST['description'] ?? '') ?: null;
if ($name === '') {
echo json_encode(['success' => false, 'message' => 'Il nome è obbligatorio.']);
exit;
}
if (mb_strlen($name) > 255) {
echo json_encode(['success' => false, 'message' => 'Il nome supera 255 caratteri.']);
exit;
}
if ($id) {
$stmt = $pdo->prepare("SELECT id FROM scad_functions WHERE name = ? AND id <> ?");
$stmt->execute([$name, $id]);
} else {
$stmt = $pdo->prepare("SELECT id FROM scad_functions WHERE name = ?");
$stmt->execute([$name]);
}
if ($stmt->fetch()) {
echo json_encode(['success' => false, 'message' => 'Esiste già una funzione con questo nome.']);
exit;
}
if ($id) {
$stmt = $pdo->prepare("
UPDATE scad_functions
SET name = ?, description = ?
WHERE id = ?
");
$stmt->execute([$name, $description, $id]);
$savedId = $id;
} else {
$stmt = $pdo->prepare("
INSERT INTO scad_functions (name, description, status)
VALUES (?, ?, 'active')
");
$stmt->execute([$name, $description]);
$savedId = (int)$pdo->lastInsertId();
}
echo json_encode([
'success' => true,
'message' => $id ? 'Funzione aggiornata.' : 'Funzione creata.',
'id' => $savedId,
'name' => $name,
'description' => $description,
]);
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]);
}