trf_certest/public/userarea/save_part_analysis.php
2026-04-03 11:15:33 +02:00

91 lines
3.1 KiB
PHP

<?php
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
require_once __DIR__ . '/class/db-functions.php';
header('Content-Type: application/json');
ini_set('display_errors', '0');
error_reporting(E_ALL);
try {
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => 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()
]);
}