false, 'message' => 'Method not allowed']); exit; } $partId = isset($_POST['part_id']) ? (int)$_POST['part_id'] : 0; $iddatadb = isset($_POST['iddatadb']) ? (int)$_POST['iddatadb'] : 0; $idmatrice = isset($_POST['idmatrice']) ? (int)$_POST['idmatrice'] : 0; $analysisRecordkey = trim($_POST['analysis_recordkey'] ?? ''); $analysisName = trim($_POST['analysis_name'] ?? ''); $analysisMethod = trim($_POST['analysis_method'] ?? ''); $analysisLevel = isset($_POST['analysis_level']) && $_POST['analysis_level'] !== '' ? (int)$_POST['analysis_level'] : null; $isWebSelectable = isset($_POST['is_web_selectable']) ? (int)$_POST['is_web_selectable'] : 0; $isAccredited = isset($_POST['is_accredited']) ? (int)$_POST['is_accredited'] : 0; if ($partId <= 0 || $analysisRecordkey === '') { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Missing required data']); exit; } $db = DBHandlerSelect::getInstance(); $pdo = $db->getConnection(); $stmt = $pdo->prepare(" INSERT INTO identification_parts_analyses ( part_id, iddatadb, idmatrice, analysis_recordkey, analysis_name, analysis_method, analysis_level, is_web_selectable, is_accredited ) VALUES ( :part_id, :iddatadb, :idmatrice, :analysis_recordkey, :analysis_name, :analysis_method, :analysis_level, :is_web_selectable, :is_accredited ) ON DUPLICATE KEY UPDATE analysis_name = VALUES(analysis_name), analysis_method = VALUES(analysis_method), analysis_level = VALUES(analysis_level), is_web_selectable = VALUES(is_web_selectable), is_accredited = VALUES(is_accredited), iddatadb = VALUES(iddatadb), idmatrice = VALUES(idmatrice), updated_at = CURRENT_TIMESTAMP "); $stmt->execute([ ':part_id' => $partId, ':iddatadb' => $iddatadb ?: null, ':idmatrice' => $idmatrice ?: null, ':analysis_recordkey' => $analysisRecordkey, ':analysis_name' => $analysisName ?: null, ':analysis_method' => $analysisMethod ?: null, ':analysis_level' => $analysisLevel, ':is_web_selectable' => $isWebSelectable, ':is_accredited' => $isAccredited, ]); echo json_encode([ 'success' => true, 'message' => 'Association saved' ]); } catch (Throwable $e) { http_response_code(500); echo json_encode([ 'success' => false, 'message' => $e->getMessage() ]); }