71 lines
2.4 KiB
PHP
71 lines
2.4 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
|
|
include('include/headscript.php');
|
|
|
|
$dbHandler = DBHandlerSelect::getInstance();
|
|
$pdo = $dbHandler->getConnection();
|
|
|
|
$iddatadb = $_GET['iddatadb'] ?? null;
|
|
|
|
if (!$iddatadb) {
|
|
echo json_encode(['success' => false, 'message' => 'ID TRF mancante']);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
// 1) prendo templateid da datadb
|
|
$stmtTpl = $pdo->prepare("SELECT templateid FROM datadb WHERE iddatadb = :iddatadb LIMIT 1");
|
|
$stmtTpl->execute([':iddatadb' => $iddatadb]);
|
|
$templateid = $stmtTpl->fetchColumn();
|
|
|
|
// 2) prendo (max 1) field_id visibile in parts
|
|
$extraFieldId = null;
|
|
if ($templateid) {
|
|
$stmtEF = $pdo->prepare("SELECT field_id FROM template_mapping WHERE template_id = :templateid AND is_visible_parts = 1 ORDER BY id ASC LIMIT 1");
|
|
$stmtEF->execute([':templateid' => $templateid]);
|
|
$extraFieldId = $stmtEF->fetchColumn();
|
|
if ($extraFieldId !== false) $extraFieldId = (int)$extraFieldId;
|
|
else $extraFieldId = null;
|
|
}
|
|
|
|
// 3) carico parts + join su tabella figlia
|
|
if ($extraFieldId) {
|
|
$stmt = $pdo->prepare("
|
|
SELECT
|
|
p.id, p.iddatadb, p.part_number, p.part_description, p.idmatrice, p.note, p.dateexpiry,
|
|
cf.value_id AS extra_value_id,
|
|
cf.value_text AS extra_value_text
|
|
FROM identification_parts p
|
|
LEFT JOIN identification_parts_customfields cf
|
|
ON cf.part_id = p.id AND cf.field_id = :extraFieldId
|
|
WHERE p.iddatadb = :iddatadb
|
|
ORDER BY p.part_number ASC
|
|
");
|
|
$stmt->execute([
|
|
':iddatadb' => $iddatadb,
|
|
':extraFieldId' => $extraFieldId
|
|
]);
|
|
} else {
|
|
$stmt = $pdo->prepare("
|
|
SELECT id, iddatadb, part_number, part_description, idmatrice, note, dateexpiry,
|
|
NULL AS extra_value_id, NULL AS extra_value_text
|
|
FROM identification_parts
|
|
WHERE iddatadb = :iddatadb
|
|
ORDER BY part_number ASC
|
|
");
|
|
$stmt->execute([':iddatadb' => $iddatadb]);
|
|
}
|
|
|
|
$parts = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'parts' => $parts,
|
|
'extra_field_id' => $extraFieldId,
|
|
'debug_sql' => ($extraFieldId ? 'WITH_CF_JOIN' : 'NO_CF')
|
|
]);
|
|
} catch (PDOException $e) {
|
|
echo json_encode(['success' => false, 'message' => 'Errore nel caricamento: ' . $e->getMessage()]);
|
|
}
|